我希望复制扩展名为.dyn的文件,该文件位于主文件夹(T15_finished)的每个子文件夹中。我希望将其复制到其他位置的相应子文件夹中(T15)。我使用xcopy命令创建了该位置。这里,.dyn文件正在T15文件夹中的相应子文件夹中成功复制(参见下面的代码)。现在,我有一个扩展名为.dynain的文件,它与.dyn位于同一个子文件夹中。并且.dynain文件也被复制,我不想要。 请参阅我创建的以下代码。谁能告诉我什么是错的?
@echo off
xcopy D:\Master\SPRINGBACK\CPW\T15_finished D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15 /t
xcopy /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15
pause
答案 0 :(得分:2)
短文件名。如果您在包含dir /x
文件的文件夹中执行.dynain
,您将看到为该文件生成的8.3文件名,并且它将具有.dyn
扩展名。
如果您知道冲突文件的扩展名,则可以使用robocopy
和/xf
开关来指示要排除的文件(*.dynain
),或者您可以生成排除文件与xcopy /exclude:file
一起使用(请参阅xcopy /?
获取解释)
或者,您可以生成要排除的文件列表
(for /f "tokens=" %%a in (
'dir /s /b "D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn" ^| findstr /v /i /e /l ".dyn"'
) do @echo(%%~nxa)>excludedFiles.txt
xcopy /exclude:excludedFiles.txt /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15
或(由foxidrive发布),复制全部然后删除不需要的文件。
答案 1 :(得分:1)
匹配短文件名以及长文件名。这就是原因。
解决方案是使用另一个命令删除文件:
del /s "D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15\*.dynain"