批处理文件,复制以(A,B,C,D,E)开头的文件


Answers:


1

不只是XCOPY。但是一个简单的FOR语句可以帮助您:

for %A in (A B C D E) do xcopy "fromPath\%A*.txt"  "toPath"

0

我不确定执行此操作的任何本机方法,但是您可以查看帖子,以获取有关GUI和命令行工具的信息,该工具具有所有可以想到的使用模式重命名文件的方式。

如果您使用此工具的命令行版本并将其添加到中PATH,则应该能够从批处理文件中使用它。


0

MaQleod的链接提供了Powershell答案,但是,如果您对批处理脚本答案感兴趣,可以采用以下一种方法:

@echo off
set __fileset.1=a*.txt
set __fileset.2=b*.txt
set __fileset.3=c*.txt
set __fileset.4=d*.txt
set __fileset.5=e*.txt

for /f "tokens=2* delims=.=" %%g in ('SET __fileset.') do call :CopySet "%%h"
goto :exit

:CopySet
echo xcopy "%~dpxn1" "\to_location\." /v
goto :eof

:exit

通过使用__fileset.环境变量,您正在批处理文件中创建伪数组。然后,您可以使用for循环遍历所有可用值,然后调用sub CopySet来执行实际的复制命令。当然,可以增强脚本,但这只是有关如何执行此操作的示例。

确保批处理脚本中的最后一行为空,因为该goto :eof命令用于结束子程序并返回到先前调用的行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.