我一直试图让这个愚蠢的BAT文件运行并遇到问题:我想传递一个目录路径并删除其中的所有内容(文件夹/文件)。但是,bat文件只删除它当前所在的所有内容。我认为问题在于参数没有设定但我不明白我哪里出错了。
命令:
delete.bat "C:\deleteme\"
尝试以下方式设置参数:
SET deletePath = %~1
SET deletePath = "%~1"
SET deletePath = %1
SET deletePath = "%1"
回显参数永远不会打印传递的值。
if "%~1"=="" goto BLANK
if NOT "%~1"=="" goto DELETE
:BLANK
ECHO Need delete path passed as parameter
TIMEOUT 10
END
Exit
:DELETE
SET deletePath = %~1
echo %deletePath%
pause
del %deletePath%. /F /Q
rmdir /s .q %deletePath%
END
exit
答案 0 :(得分:2)
批处理对SET
语句中的空格敏感。 SET FLAG = N
将名为“FLAG Space ”的变量设置为值“ Space N”
所以 - 删除错误的空格