我有一个非常奇怪的错误。我编写了一个脚本,将一些文件复制并提取到一个文件夹中,但在此之前,我删除了 dir / old 文件,如下所示:
SET destinationFolder=C:\MyFolder
IF EXIST %destinationFolder% (
ECHO rd %destinationFolder% /S /Q
rd %destinationFolder% /S /Q
IF %errorlevel% == 0 ( ECHO --^> SUCCEED ) ELSE ( ECHO --^> FAILED & set /a errorCount+=1 & ECHO %errorlevel% )
) ELSE ( ECHO --^> SUCCEED: No files existent )
好吧,到目前为止,当我以管理员身份操作时,这有效,但当我不是管理员时,这不是预期的。
如果我打开一个非管理员 shell 并第一次运行批处理(不存在文件),它工作正常,当我在同一个 shell 重复它时(存在同一个批处理的文件)。
但是,如果我打开另一个/新的非管理员外壳(前一个不再运行)并且我运行脚本(来自另一批次的旧文件存在)它返回错误级别 2,即使我首先检查目录是否存在.
而“最有趣”的事情是,当我rd %destinationFolder% /S /Q
在同一个 shell 中运行命令时,它在批处理中不起作用,它应该可以正常工作!