使用批处理文件复制特定文件夹中的文件

时间:2019-01-21 14:54:43

标签: windows batch-file command-line command-prompt

我有两个PDF-.COMInterop and C# Notes - Notes 1 to 10.pdf.COMInterop and C# Notes - Notes 11 to 20.pdf保留在目录D:\Dropbox\Sample C# Notes

文件夹Sample C# Notes中还有一些子文件夹,例如000100020003,依此类推,直到0300

我正在批处理文件中写入以下命令(由SO用户批处理),以将pdf从Sample C# Notes复制到其中的所有子文件夹(0001、0002、0003 ...)

for /D %%x in ("D:\Dropbox\Sample C# Notes\*") DO (
  COPY "D:\Dropbox\Sample C# Notes\.COMInterop and C# Notes - Notes 1 to 10.pdf" "%%x\"
)

如何修改此代码,以便可以复制:

.COMInterop and C# Notes - Notes 1 to 10.pdf放入文件夹00010100

.COMInterop and C# Notes - Notes 11 to 20.pdf放入文件夹01010300

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

@echo off
pushd "D:\Dropbox\Sample C# Notes\"
for /f %%x in ('dir /b /ad 0*') do (
    if %%x leq 0100 (
        COPY ".COMInterop and C# Notes - Notes 1 to 10.pdf" "%%x\"
    ) else (
        COPY ".COMInterop and C# Notes - Notes 11 to 20.pdf" "%%x\"
    )
)
popd
@echo on

为了使生活更轻松,我没有使用完整的目录路径,而是先更改了工作路径,然后复制文件。
另外,由于您说的是00010030个子文件夹,所以我没有检查01010300,只需将它们放在else块中。
您可以基于这些进行改进。

for /f使用了另一个命令dir的输出。