Jos*_*osh 7 windows batch-file
以下代码始终显示0作为errorlevel,但是当复制命令在for循环命令之外完成时,它返回非零错误级别.
for /f "usebackq delims=" %%x in (`copy x y`) do (
set VAR=%%x
)
ECHO Errorlevel = %ERRORLEVEL%
ECHO VAR = %VAR%
Run Code Online (Sandbox Code Playgroud)
是否可以获取for循环执行的复制命令的错误级别?
小智 5
这个对我有用 !您只需将DO括号内的错误检查与包含复制命令的文本文件放在一起(7200行;例如:copy 2_97691_Scan.pdf O:\ Data\Dev\Mins\PDFScan2\2011\4\_27691_Scan.pdf) ,我可以运行以下批处理文件
@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%I in (CopyCurrentPDFs.txt) do (
%%I
if !errorlevel! NEQ 0 echo %%I>>errorcopy.txt
)
Run Code Online (Sandbox Code Playgroud)
我假设您正在将文件从一个目录复制到另一个目录?如果是这样,你可以这样做:
@echo off
setlocal EnableDelayedExpansion
set ERR=0
for %%x in (x) do (
copy %%x y
set ERR=!errorlevel!
set VAR=%%x
)
ECHO Errorlevel = %ERR%
ECHO VAR = %VAR%
Run Code Online (Sandbox Code Playgroud)
需要延迟扩展来获取循环内的 errorlevel 的实际值,而不是进入循环之前的值。
如果这不是您想要做的,请澄清您的目标。
| 归档时间: |
|
| 查看次数: |
6802 次 |
| 最近记录: |