我有一个 *otf 文件,我想将其复制到父文件夹的所有子目录中。这就是我尝试过的。
for /R %%x in (.) do copy "file.otf" "%%x"
这在大多数情况下都有效,但它也会将副本保留到父文件夹中。我希望修复此问题,以便批处理仅复制到所有子目录中。
答案1
我无法让您的代码在 Microsoft Windows [版本 10.0.17134.648] 上运行。以下代码可以运行。
测试:
for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do echo copy /y "file.otf" to "%%x\"
复制:
for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do copy /y "file.otf" "%%x\"
从子目录中删除 file.otf:
for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do del /q "%%x\file.otf"
tokens=* 处理路径/文件名中的空格
"tokens=*"
dir /b /s /ad 将文件复制到目录而不是文件。如果没有 /ad file.otr,将覆盖目录中的所有文件。如果您担心,请使用 copy 而不是 copy /y。
dir /b /s /ad
copy /y 会覆盖 file.otr,无需请求许可。您必须尝试几次才能满意它是否正常工作。
copy /y
为什么不直接删除父目录中的 file.otr,而是“修复”你的代码?
del /q file.otr