复制嵌套循环中的“找不到指定的文件”

时间:2019-08-16 15:01:34

标签: batch-file

复制在程序中的其他任何地方都可以正常工作,似乎只是在嵌套的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语句之间(第一个在条件之外,仅列出文件大小)。 (见附件) current cmd output

0 个答案:

没有答案