【发布时间】:2021-10-22 05:44:57
【问题描述】:
我有一个根目录,其中包含超过 25,000 个文件。这些文件位于不同的子目录中。
我还有一个包含 4300 行的文本文件,每一行都是目录中某个文件的绝对路径。如下所示,
c:\dir1\hat1.gif
c:\dir1\hat2.gif
c:\dir1\dir2\hat1.gif
c:\dir1\dir2\hat2.gif
c:\dir1\dir3\cat.zip
c:\dir1\dir3\banana.exe
我还有另一个根目录,它是原始根目录结构的副本,但所有目录都是空的。
我想将文本文件中列出的所有文件复制到空目录中,并将所有复制的文件放在相应的子目录中。
如果我使用以下批处理文件,我会不断收到文件覆盖提示,因为它没有将文件复制到正确的目录。
@echo off
set dst_folder=c:\DSTN2
for /f "tokens=*" %%i in (USEDFILES.txt) DO (
xcopy /S/E "%%i" "%dst_folder%"
)
如何修改它以便将文件复制到正确的目录?
【问题讨论】:
-
这个问题和the one you asked earlier有什么区别,现在已经删除了。当您尝试在这些 cmets 中实施提供给您的建议时发生了什么?如果您表现出无视评论员建议的行为模式,他们将来不太可能为您提供帮助。将
"%dst_folder%"更改为"%dst_folder%%%~pi" -
谢谢,看来它成功了。我设法创建重复的文件夹结构,编辑现有问题只会导致混乱,因为最初的答复不会符合问题。
-
@dij,我们真的希望您将所有问题都保留在一个问题中,而不是删除它。当您编辑问题时,每个人都可以看到您所做的编辑。问题下方的评论也可以删除。在您提出任何其他问题之前,请按照您加入 StackOverFlow 时的要求发送 tour。另请阅读How to Ask 一个好问题,并始终提供您正在使用的代码和输入示例的minimal reproducible example
标签: windows batch-file