Batch file 尝试使用批处理脚本根据文件名部分将文件从一个目录复制到另一个目录

Batch file 尝试使用批处理脚本根据文件名部分将文件从一个目录复制到另一个目录,batch-file,Batch File,这是我的代码: @ECHO OFF SET PATH1=C:\Users\Honey\Desktop\a\ SET PATH2=C:\Users\Honey\Desktop\b\ PUSHD %PATH1% for /f "tokens=1*" %%a in ('dir /b /a-d "BESTPOST_Reporting_*_*.txt"') do (XCOPY %%a %%b %PATH2% /Y) popd 当我通过命令行运行它时,会出现以下错误: “命令的语法不正确” 有什

这是我的代码:

@ECHO OFF

SET PATH1=C:\Users\Honey\Desktop\a\
SET PATH2=C:\Users\Honey\Desktop\b\

PUSHD %PATH1%

for /f "tokens=1*" %%a in ('dir /b /a-d "BESTPOST_Reporting_*_*.txt"') do (XCOPY %%a %%b %PATH2% /Y)


popd
当我通过命令行运行它时,会出现以下错误: “命令的语法不正确”


有什么建议吗?

从下一个代码开始,查看循环效果的

然后您可以将
echo%%~a
命令替换为
echo xcopy“%%~a”“%path2%\%%%a”/Y
,并最终(在调试之前)替换为

xcopy“%%~a”“%path2%\%%~a”/Y

然而所有的任务都可以通过

@ECHO OFF

SET "PATH1=C:\Users\Honey\Desktop\a"
SET "PATH2=C:\Users\Honey\Desktop\b"

PUSHD %PATH2%

Copy /B /Y "%PATH1%\BESTPOST_Reporting_*_*.txt"

popd
资源(必读):

  • (命令参考)
  • (其他特殊性)
  • %%~a
    等特殊页面)

dir/b
只生成一个令牌,因此我非常确定
%%b
将是空字符串。您希望在
%%b
中看到什么?另外,您能否确认
dir
语句在
for
之外使用时会产生预期的输出?
@ECHO OFF

SET "PATH1=C:\Users\Honey\Desktop\a"
SET "PATH2=C:\Users\Honey\Desktop\b"

PUSHD %PATH2%

Copy /B /Y "%PATH1%\BESTPOST_Reporting_*_*.txt"

popd