Я получаю странный вывод при запуске моего скрипта
Для отладки ваших пакетных сценариев прокомментируйте @echo off
строку, чтобы вы могли видеть, что происходит:
rem @echo off
Вы setlocal enabledelayedexpansion
не в том месте. Переместите его в начало файла.
test.cmd:
@echo off setlocal setlocal enabledelayedexpansion pushd "%~dp0" set Mode=batch if "%Mode%"=="batch" call :BATCH echo %Loc% pause>nul :BATCH set "psCommand="(new-object -COM 'Shell.Application')^ .BrowseForFolder(0,'Please choose a folder.',0,0).self.path"" for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%I" set Loc=!folder! Goto:eof
Пример вывода (я выбрал «Рабочий стол»):
F:\test>test C:\Users\DavidPostill\Desktop F:\test>
Замечания:
- Вы по-прежнему будете
ECHO is off.
отображаться, если вы нажмете «Отмена» при первом отображении вашего диалога.