我是批处理文件写作的新手
这是父文件夹Folder1
的当前内容:
C:\Folder1\Subfolder1
C:\Folder1\Afile001.txt
C:\Folder1\Bfile002.txt
C:\Folder1\Cfile003.txt
C:\Folder1\Xfile004.txt
C:\Folder1\Yfile005.txt
此文件夹中的文件数量会不时增加。
我需要Folder1
中的当前文件列表,然后将它们复制到Subfolder1
,这是通过使用命令copy *.txt Subfolder1
实现的。
接下来,Subfolder1
中的文件由某个进程获取(或复制),然后父Folder1
的内容更改为:
C:\Folder1\Subfolder1
C:\Folder1\Afile001.txt
C:\Folder1\Bfile002.txt
C:\Folder1\Cfile003.txt
C:\Folder1\Xfile004.txt
C:\Folder1\Yfile005.txt
C:\Folder1\Dfile001.txt
C:\Folder1\Efile002.txt
C:\Folder1\Ffile003.txt
C:\Folder1\Gfile004.txt
C:\Folder1\Hfile005.txt
如何实现一个批处理文件,该文件从Subfolder1
获取文件列表并使用该列表删除Folder1
中具有相同名称的文件,并仅留下该文件夹中的新文件?
所以结果应该是Folder1
:
C:\Folder1\Subfolder1
C:\Folder1\Dfile001.txt
C:\Folder1\Efile002.txt
C:\Folder1\Ffile003.txt
C:\Folder1\Gfile004.txt
C:\Folder1\Hfile005.txt
答案 0 :(得分:0)
只需使用命令 FOR 和 DEL ,只需一个命令行就可以完成:
@echo off
for %%I in ("C:\Folder1\Subfolder1\*.txt") do del "C:\Folder1\%%~nxI" 2>nul
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
del /?
echo /?
for /?
另请阅读Microsoft文章Using Command Redirection Operators,了解2>nul
解释 DEL 输出的错误消息,以便通过重定向处理 STDERR 设备 NUL 如果C:\Folder1\Subfolder1
中的* .txt文件在C:\Folder1
中不再存在。
顺便说一下:也可以使用命令
move /Y C:\Folder1\*.txt C:\Folder1\Subfolder1\
将文件从C:\Folder1
移至C:\Folder1\Subfolder1
,而不是先将其复制,然后再将其删除。