我正在尝试弄清楚如何编写一个脚本来获取如下文件:
img123
img123back
img124
img125
img125back
img126
img127
我需要将所有与带有“back”字样的文件具有相同编号的文件移动到单独的文件夹中。结果示例:
img123
img123back
img125
img125back
答案1
您可以使用对于/f迭代输出目录命令针对源目录。您可以使用一些条件如果逻辑和循环变量替换来确认具有单个字符串“back”的文件存在,如果存在,则复制该文件以及具有相同名称的文件减去相应的字符串。
@ECHO ON
SET "srcPath=C:\Source\Path"
SET "destPath=C:\Copy\Path"
SET "keyword=back"
FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%srcPath%\*"') DO (
IF EXIST "%%~DPA%%~NA%keyword%%%~XA" XCOPY /Y /F "%%~DPA%%~NA%keyword%%%~XA" "%destPath%\" & XCOPY /Y /F "%%~FNXA" "%destPath%\"
)
PAUSE
EXIT
更多资源
- 对于/F
- 目录
批量替换 (FOR /?)
此外,FOR 变量引用的替换功能也得到了增强。现在您可以使用以下可选语法:
%~I - expands %I removing any surrounding quotes (") %~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only %~nI - expands %I to a file name only %~xI - expands %I to a file extension only
- 重定向