배치 파일이 있고 배치 파일 내에 특정 디렉토리를 찾고 첫 번째 디렉토리/파일의 이름을 저장합니다. 여기에 내가 뭐하는 거지 대략입니다 :루프에 대한 bat 스크립트는 CL에서 작동하지만 두 번 클릭하면 작동하지 않습니다.
FOR /d %%F IN (%INSTALL_DIR%\dir\*) DO (
set NAME=%%~xnF
set NAME_DIR=%INSTALL_DIR%\dir\%NAME%
goto :break
)
내가 명령 줄에서이 작업을 실행하면 완벽하게 작동하고 NAME_DIR 올바른 값을 가져옵니다. 그러나 파일을 두 번 클릭하면 NAME 변수가 비어 있습니다. 따라서 NANE_DIR은 % INSTALL_DIR % \ dir로 설정됩니다. 왜 이런 일이 일어나고 그것을 해결하기 위해 무엇을 할 수 있습니까? 더 명확한 설명을 위해
는 명령 줄에서,이 감동 할 때 어떤 NAME 및 NAME_DIR 같다 :
NAME: dir1.3.8
NAME_DIR: D:\root\path\to\dir\dir1.3.8
이 더블 클릭하면 에코되는 것입니다 : RaymondChen가 나에게 말했다 무엇
NAME:
NAME_DIR: D:\root\path\to\dir
'NAME_DIR' 명령 줄에서 올바른 값을 가져옵니다에
%NAME%
변경 : 여기에 지연 확장과 새로운 코드는? 멋지다! 'goto : break '줄 앞에'NAME'과'NAME_DIR'의 값을'echo'하고 여기에 출력을 게시하십시오. – Endoro나는 더 명확하게하기 위해 그것을 추가했다 – user972276
어떤 코드 줄에'echo' 명령을 넣었습니까? – Endoro