Я пытаюсь найти установочный файл в подкаталоге и запустить его в качестве параметризованной установки без вывода сообщений.Имя подкаталога постоянно меняется, и мне нужно сделать это в глубине = 1, потому что есть несколько установочных файлов.Например:
root dir C:\temp
C:\temp\
|-\subdir1\setup.exe (want to run this one but it sometimes can be Setup.exe)
|-\subdir1\subsubdir1\setup.exe
|-\subdir1\subsubdir2\
|-\subdir1\subsubdir3\setup.exe
Попытка написать сценарий в PowerShell, где полный путь к файлу был сохранен в переменной и введен в команду, но у PowerShell есть проблемы с запуском автоматической установки, и в большинстве случаев они просто не могут быть установлены правильно,Понятия не имею почему.При запуске той же команды из cmd она работает отлично.К сожалению удалил его по ошибке, поэтому не могу показать код.И еще одна проблема заключается в том, что версия powershell различается для разных типов Windows, поэтому некоторые внутренние команды работают, а некоторые нет.
Также пытались каким-то образом изменить это решение из аналогичного ответа:
for /f "delims=" %%i in ('dir /b /a-d /s C:\temp\setup.exe /someparams') do "%%~fi"
проблема здесьявляется то, что dir
не поддерживает глубину, и это приводит к запуску всех установочных файлов во всех подкаталогах один за другим.Не знаю, как заставить его работать только для одного.
Прямо сейчас я пытаюсь сделать то же самое, что и в powershell, используя batch, и получаю следующее:
for /r C:\temp %%a in (*) do if "%%~nxa"=="setup.exe" set p=%%~dpnxa
if defined p (
start "%p% /silent /othervar"
) else (
echo Something did not work.
)
Сейчас я застрял ипонятия не имею, как добиться того, чего я хочу.Надеюсь, кто-то может помочь.