想知道是否有一个可以在 .bat 文件中运行的脚本,该脚本允许我仅复制目录中的某些文件类型,然后将它们粘贴到另一个目录中
目录内容示例:F:\testbatch\test1
test_01.tcs
test_02.tcs
test_03.tcs
garbagefile_01.txt
garbagefile_02.txt
nothing.rtf
test.tpl
假设我想复制所有内容.tpl&.tcs文件来自F:\testbatch\test1并将其粘贴至:
F:\testbatch\test2
需要注意的是目标目录F:\testbatch\test2将已经有一些与源文件夹相同的文件,我需要覆盖这些文件。
所以我的问题是双重的:
1 - 我可以在批处理脚本中输入什么命令来仅复制某些类型的文件?
2 - 如何确保复制和粘贴这些文件时它们会覆盖现有的同名文件?
编辑我已经尝试过:
xcopy "C:\Users\me\Desktop 3\123" *.bin "C:\Users\Jeff\Desktop 3\456" /y
xcopy "C:\Users\me\Desktop 3\123" *.tpl "C:\Users\Jeff\Desktop 3\456" /y
但什么也没有被复制。
运行 Windows 7 64 位
答案1
我可以在批处理脚本中输入什么命令来仅复制某些类型的文件?
任何接受的命令通配符。
我如何确保复制这些文件时它们会覆盖现有文件?
使用复制 /y
(抑制确认覆盖文件的提示)选项。
我想将所有文件从 F:\testbatch\test1 复制.tpl
到.tcs
F:\testbatch\test2
使用以下命令
xcopy F:\testbatch\test1\*.tpl F:\testbatch\test2 /y
xcopy F:\testbatch\test1\*.tcs F:\testbatch\test2 /y
这为什么不起作用?
我努力了:
xcopy "C:\Users\me\Desktop 3\123" *.bin "C:\Users\Fiver\Desktop 3\456" /y xcopy "C:\Users\me\Desktop 3\123" *.tpl "C:\Users\Fiver\Desktop 3\456" /y
您的引号位置错误并且缺少反斜杠。
正确的命令是:
xcopy "C:\Users\me\Desktop 3\123\*.bin" "C:\Users\Fiver\Desktop 3\456" /y
xcopy "C:\Users\me\Desktop 3\123\*.tpl" "C:\Users\Fiver\Desktop 3\456" /y
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 机器人复制- 强大的文件和文件夹复制功能
- 通配符
- 复制- 将文件和/或目录树复制到另一个文件夹
答案2
没有命令可以直接让您选择多种扩展类型来仅复制具有该扩展名的文件。我的做法是创建一个包含多个调用的批处理文件xcopy
。
就您而言,您需要创建一个包含以下行的批处理文件。
xcopy F:\testbatch\test1\*.tpl F:\testbatch\test2 /y
xcopy F:\testbatch\test1\*.tcs F:\testbatch\test2 /y
因此,简短的回答是批处理文件是你的朋友。
答案3
我的解决方案是将源目录映像到另一个临时目录中,但在复制提示中仅处理 *.pdf 文件
在 Windows 上我使用 XCOPY -
XCOPY "C:\utils\*.pdf" "D:\Backup\utilspdfs" /s /i
然后我处理该文件夹,然后复制粘贴回原始文件夹。
你可以在 gnulinux 上使用 bash 做类似的事情
cp -r source_directory/*.{png,jpg,jpeg} target_directory 2>/dev/null || :
答案4
您可能需要查看Robocopy。它有多种不同的开关,可用于获取您想要的结果。