alex_diablo
Постоянный участник
- Сообщения
- 144
- Реакции
- 9
добрый день. есть следующий код (часть скрипта):
что делает: файл file.bat запускается через пробел с параметром. в качестве параметра - номер версии искомого файла (например file.bat 2017.4.2f2)
первый цикл отрабатывается нормально, находится искомый каталог и нужный файл.
далее, в уже найденном каталоге ищутся другие файлы (по соответствующей маске поиска и создаются переменные для них)
проблема в том, что во втором цикле по непонятной мне причине, появляется лишний пробел (на скриншоте видно)
Помогите пожалуйста понять, что я делаю не так?
в результате чего искомый файл не находится и путь до него не записывается в переменную, т.е. ошибка - файл не найден.
что делает: файл file.bat запускается через пробел с параметром. в качестве параметра - номер версии искомого файла (например file.bat 2017.4.2f2)
первый цикл отрабатывается нормально, находится искомый каталог и нужный файл.
далее, в уже найденном каталоге ищутся другие файлы (по соответствующей маске поиска и создаются переменные для них)
проблема в том, что во втором цикле по непонятной мне причине, появляется лишний пробел (на скриншоте видно)
Помогите пожалуйста понять, что я делаю не так?
Bash:
@ECHO OFF
SetLocal EnableExtensions
set "folder=\\fs\Soft\Developers_Tools\Unity"
if "%1" EQU "" goto error
set version=%1
goto search
:search
For /f "delims=" %%a in ('dir /b /s /a-d "%folder%\unitysetup*.exe" ^| find "%version%" ^| find /i /v "UnitySetup-Android" ^| find /i /v "UnitySetup-iOS" ^| find /i /v "UnitySetup-Mac" ^| find /i /v "UnitySetup-Windows" ^| find /i /v "UnityDocumentationSetup" ^| find /i /v "UnitySetup-AppleTV" ^| find /i /v "UnitySetup-Facebook" ^| find /i /v "UnitySetup-Linux" ^| find /i /v "UnitySetup-UWP" ^| find /i /v "UnitySetup-Vuforia" ^| find /i /v "MonoDevelop" ^| find /i /v "UnitySetup-WebGL"') do (
set fileurl=%%~fa
set folderurl=%%~dpa
)
echo %fileurl%
echo %folderurl%
pause
For /f "delims=" %%a in ('dir /b /s /a-d "%folderurl%\unity*.exe" ^| find /i "Android-Support"') do set android=%%~fa
For /f "delims=" %%a in ('dir /b /s /a-d "%folderurl%\unity*.exe" ^| find /i "iOS-Support"') do set ios=%%~fa
For /f "delims=" %%a in ('dir /b /s /a-d "%folderurl%\unity*.exe" ^| find /i "Windows-Support"') do set wind=%%~fa
pause
exit /b
проблема в том, что во втором цикле по непонятной мне причине, появляется лишний пробел (на скриншоте видно)
в результате чего искомый файл не находится и путь до него не записывается в переменную, т.е. ошибка - файл не найден.
Последнее редактирование модератором: