![for循环停止批处理脚本](https://linux22.com/image/1435401/for%E5%BE%AA%E7%8E%AF%E5%81%9C%E6%AD%A2%E6%89%B9%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC.png)
好的,我一直在玩这个脚本,由于某些未知原因,当脚本到达 for 语句时,它总是崩溃(退出提示符),但是,如果我只是将这些命令逐个复制并粘贴到 cmd 中,它就可以正常工作。有人能告诉我这是为什么吗,或者我该如何解决这个问题?谢谢
@echo off
CD C:\RemoteInstall\Boot\
set /p name=Enter the wim file name (no extension):
SET name=%name:~0%.wim
echo+ %name%
timeout >nul 2
FOR /f "tokens=*" %a in ('dir "%name%" /b /s') do set p=%~a
SET p=%p:~0%
echo %p%
timeout >nul 2
xcopy "%p%" C:\imagefix\image /y
timeout >nul 2
pause
答案1
好吧,我自己解决了这个问题,原来我必须避开 FOR 语句中的分隔符,现在看起来像这样
FOR /f "tokens=*" %%a in ('dir "%name%" /b /s') do set p=%%~a