.bat ищет файл, который может быть в разных именах файлов - PullRequest
0 голосов
/ 16 января 2019

Я создаю командный файл, который, если программа существует, то она заканчивается. но если он не существует, он начнет установку этой программы.

Когда программа устанавливается, в пути к файлу есть часть с 4 случайными числами, в которой она создается и находится в ней. Я не уверен, будет ли мой сценарий просматривать это или нет. Пока что я создал:

@echo off 
REM === Agent already deployed on the computer? 
if exist "C:\Program Files (x86)\Citrix\Remote Support Customer\????\g2ax_comm_customer.*" goto END 
REM === Deploying agent in silent mode 
"\\location.exe" --mode unattended 
REM === Script done 
:END

Я знаю, что установка работает, поэтому я не учел это. Я не слишком много работаю с командной строкой Windows и не уверен, сработает ли мой «если есть» или нет.

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Вы можете просто рекурсивно искать родительский каталог.

@echo off
for /R "C:\Program Files (x86)\Citrix\Remote Support Customer" %i in (g2ax_comm_customer.*) do if not exist %%i "\\location.exe" --mode unattended
0 голосов
/ 16 января 2019

dir может искать в подпапках с помощью переключателя /s. Перенаправьте его вывод в NUL и используйте условное выполнение в случае успеха / неудачи:

dir /s /b "C:\Program Files (x86)\Citrix\Remote Support Customer\g2ax_comm_customer.*"  >nul 2>&1 && (
  echo found the file
) || (
  echo didn't find the file
)
0 голосов
/ 16 января 2019
@echo off
setlocal
set "supportdir=C:\Program Files (x86)\Citrix\Remote Support Customer"

REM === Agent already deployed on the computer?
for /d %%A in ("%supportdir%\*") do if exist "%%~A\g2ax_comm_customer.*" exit /b
REM === Deploying agent in silent mode
"\\location.exe" --mode unattended

Сегмент пути ???? не будет разрешен, поэтому может потребоваться выполнить итерацию неизвестные подкаталоги, использующие цикл for /d. Подстановочные знаки действительны для последнего сегмента.

%%~A будет иметь абсолютные пути того, что раньше было ????. Теперь можно проверить, существует ли %%~A\g2ax_comm_customer.*.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...