当我尝试使用批处理文件删除文件时,我遇到错误。 例如,我想要删除的文件是“C:\ test \ a.dll”
我从注册表中获取文件夹“c:\ test”然后我尝试使用以下命令附加文件名并将其删除
del / s%WPINSTDIR%\ a.dll
我从注册表中获取WPINSTDIR,它将是“C:\ test”
然而,当我尝试运行批处理文件时,我收到错误,说明找到了网络路径 这是执行的命令。 del / s“c:\ test”\ a.dll
通过设置环境路径变量,我发现问题在于“c:\ test”和引号中的2个斜杠。无论如何要解决这个问题。
由于
答案 0 :(得分:3)
尝试使用
pushd %WPINSTDIR%
del /s a.dll
popd
这将恢复以前的目录。
答案 1 :(得分:0)
这可能会:
set current=%CD%
CD /d %WPINSTDIR%
DEL /s a.dll
CD /d %current%
修改强>
编辑使用CD /d
和“%CD%
- 技巧”。
答案 2 :(得分:0)
您可以使用以下内容删除环境变量周围的引号:
%WPINSTDIR:"=%
所以以下内容可能有效:
del %WPINSTDIR:"=%\a.dll
但是,如果路径包含空格,则会失败。
您还可以使用以下内容:
call :del_file %WPINSTDIR% a.dll
goto :eof
:del_file
del "%~1\%~2"
goto :eof
即使包含空格的路径也应该有效。 ~
中的%~1
会删除周围的引号。