根据名称移动文件的批处理文件
问题描述:
我目前有超过100.000个文件(.bak),我需要将1000个文件移动到不同的目录。需要移动的文件有一个带有不同扩展名(.xml)的双文件,因此找到它们应该很容易,但对于我来说,我无法弄清楚如何做到这一点。我没有使用.bat文件的经验,而且我一直在为一天的工作而苦苦挣扎。有人可以帮我吗?根据名称移动文件的批处理文件
简单的例子:
第一个文件:
File1thatneedstomove.bak
File1thatneedstomove.xml
File1thatdoesntneedstomove.bak
File2thatdoesntneedstomove.bak
File3thatdoesntneedstomove.bak
File2thatneedstomove.bak
File2thatneedstomove.xml
所以我需要在1楼和6文件移动到不同的文件夹,因为他们有一个双胞胎文件,其中刚刚周期之后的文字是不同的。
答
未测试:
set "source_dir=C:\baks"
set "destination=C:\dest"
for %%a in ("%source_dir%\*bak") do (
if exist "%%~dpna.xml" (
echo move /y "%%~fa" "%destination%"
)
)
它将回声所需的移动命令的参数。如果确实可以删除方括号中的echo
单词。
+1
认为你在'%%〜dpna.xml'中缺少'n' –
+0
@LS_ᴅᴇᴠ - 谢谢 – npocmaka
欢迎来到SO。本网站不是代码编写服务,不适用于提供完整的解决方案。预计用户将展示一些努力和代码,而SO在此期间将帮助您解决具体的编程问题。你已经尝试了什么?请阅读:https://stackoverflow.com/help/asking –
我试图复制这两个解决方案,并改变它们以适应我的需求,但这似乎不起作用。我无法检查如何比较两个文件,然后移动基于该检查.https://stackoverflow.com/questions/28035754/batch-file-to-move-files-based-on-name-wo-creating-新文件夹和https://stackoverflow.com/questions/41804814/batch-file-to-move-files-based-on-part-of-filename-to-folder-based-on-part-of-f –