Batch file BAT文件中的文件创建错误

Batch file BAT文件中的文件创建错误,batch-file,xcopy,Batch File,Xcopy,当我使用xcopy将文件移动到某个路径时,会出现“文件创建错误”。 此代码工作正常: for /f "eol=: delims=" %%a in (D:\Scripts\filelist.txt) do ( for /f "eol=_ tokens=4 delims=-" %%b in ("%%a") do ( xcopy /I /K /Q /R /Y "E:\ReportOutput\IAP_ddz\%%a" "E:\ReportOutput\IAP_ddz\ByS

当我使用xcopy将文件移动到某个路径时,会出现“文件创建错误”。 此代码工作正常:

for /f "eol=: delims=" %%a in (D:\Scripts\filelist.txt) do (
   for /f "eol=_ tokens=4 delims=-" %%b in ("%%a") do (    
      xcopy /I /K /Q /R /Y  "E:\ReportOutput\IAP_ddz\%%a" "E:\ReportOutput\IAP_ddz\BySchool\%%b\test\" >> Output.txt
   )
)
但是,当我对下面显示的xcopy语句进行简单更改时,它会给出一个“文件创建错误-系统找不到指定的路径”


我使用的是Windows Server 2008 R2 Standard&我以管理员身份运行CMD。

更改是否只是将最后一个句点附加到Output.txt文件中?我认为问题可能是Windows命令提示符不喜欢处理以句号结尾的文件。句点在文件扩展名之前,但我认为不给它一个扩展名会导致错误。但是,如果这不是变化,我就看不出来了。实际想要的变化是什么?故事肯定还有更多。我不能重现那个错误@yftse-Windows确实不允许在文件/文件夹名称中使用尾随点或空格。但是Windows将从文件名中删除任何尾随点或空格,因此重定向可以很好地处理尾随点,至少在我手中是这样。那么,奇怪的是,错误暂时消失了?出于某种原因,我原以为您可能更改了复制文件的路径,从而产生了这种类型的错误。我直观地比较了您的代码块,但没有发现差异。当问题再次出现时,我会检查所有路径是否存在。祝你好运。为占用你的时间向YTSE&dbenham道歉。有效的代码在目标路径中没有“test”。代码中不起作用的点不应该在那里。总之,有效的代码是:“xcopy/I/K/Q/R/Y”E:\ReportOutput\IAP\u ddz\%a”“E:\ReportOutput\IAP\u ddz\BySchool\%b\“>>Output.txt”(无“测试”),无效的代码是“xcopy/I/K/Q/R/Y”E:\ReportOutput\IAP\u ddz\%a”“E:\ReportOutput\IAP\u ddz\BySchool\%b\test\>>Output.txt”我刚刚注意到%%b在“\test\”之前有一个尾随空格。当我从%%b中删除尾随空格时,它起作用了。%%b的Eg是“医学院”。更容易让报告生成程序删除空格,而不是另一个循环来删除空格,因为BAT没有长度或修剪功能。谢谢你的建议。这是发现问题的催化剂。下次我也会发布源数据。
xcopy /I /K /Q /R /Y  "E:\ReportOutput\IAP_ddz\%%a" "E:\ReportOutput\IAP_ddz\BySchool\%%b\test\" >> Output.txt.