Estou recebendo uma saída estranha ao executar meu script:
@echo off
setlocal
pushd "%~dp0"
set Mode=batch
if "%Mode%"=="batch" call :BATCH
echo %Loc%
pause>nul
exit
: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"
setlocal enabledelayedexpansion
set Loc=!folder!
Goto:eof
Deve estar exibindo o local da pasta que eu selecionei. em vez disso, o eco está desligado.
Responder1
Estou recebendo resultados estranhos ao executar meu script
Para depurar seus scripts em lote, comente a @echo off
linha para ver o que está acontecendo:
rem @echo off
Você setlocal enabledelayedexpansion
está no lugar errado. Mova-o para o início do arquivo.
teste.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
Exemplo de saída (selecionei "Desktop"):
F:\test>test
C:\Users\DavidPostill\Desktop
F:\test>
Observação:
- Você ainda será
ECHO is off.
exibido se pressionar "Cancelar" na primeira vez que sua caixa de diálogo for exibida.