复制在程序中的其他任何地方都可以正常工作,似乎只是在嵌套的for循环内搞乱了。返回"The system cannot find the file specified."
(我假设这是传递给复制的第一个非切换参数)
运行Windows 10, delayedexpansion IS已启用
在程序中,我正在从扫描文件夹中获取.pdf文件,并在输出目录和完成目录中创建一个副本。后来,我意识到我需要某种类型的连续性检查,以确保输出中的文件正确无误(最初,“完成”是 just ,用于不重新复制我已经移出“导出目录)。程序的每一次通过都会通过扫描的文件更新“完成”文件夹(有时仍从扫描仪加载文件并部分复制文件)。
尝试更改我根据文件"%%~nxA"
提供的副本就是其中之一
SET useableDirectory="C:\Users\IoCalisto\Desktop\custom scan filter\output"
FOR /R "C:\Users\IoCalisto\Desktop\custom scan filter\done" %%A in (*.pdf) do (
IF EXIST "C:\Users\IoCalisto\Desktop\custom scan filter\output\%%~nxA" (
SET useableFile="C:\Users\IoCalisto\Desktop\custom scan filter\output\%%~nxA"
FOR %%B in (!useableFile!) do (
echo File: %%~zB check: %%~zA
IF %%~zA EQU %%~zB echo FILE SIZE CORRECT
IF %%~zA GTR %%~zB (
copy %%A %useableDirectory%
echo %%A
echo %%~nxA
echo !useableFile!
echo %useableDirectory%
)
IF %%~zA LSS %%~zB echo FILE SIZE ERROR, CORRECTING IN NEXT PASS?
echo.
)
)
)
程序的此部分是完整性检查的一部分,以确保文件完整。 "C:\Users\IoCalisto\Desktop\custom scan filter\done"
目录中包含完整的文件,我只想复制输出目录中位数较少的文件。我想避免只复制完文件夹中的所有内容,因为我认为这是一个学习的机会。
编辑:如果"IF %%~zA GTR %%~zB"
条件为true,则会发生错误。 IF语句主体中的第一件事是复制命令。该命令的输出在两个均可按预期运行的echo语句之间(第一个在条件之外,仅列出文件大小)。
(见附件)