我想创建一个简单的批处理脚本:
- 将文件夹内的所有文件复制
A
到当前目录(其中还包含一些文件) - 运行一些命令
- 删除所有复制的文件
一个直接的解决方案是遍历里面的所有文件A
,复制它们并保留它们的列表。然后在最后进行清理。
但我想知道是否有更好的解决方案。
我想创建一个简单的批处理脚本:
A
到当前目录(其中还包含一些文件) 一个直接的解决方案是遍历里面的所有文件A
,复制它们并保留它们的列表。然后在最后进行清理。
但我想知道是否有更好的解决方案。
@echo off
copy "c:\A\*.*" .
rem run commands
for %%a in ("c:\a\*.*") do del "%%~nxa"
保存文件列表,复制它们,做你的事情,然后使用你的列表删除:
dir /b A >list.txt
copy A\*.* .
rem do stuff here
for /F "delims=" %%i in (list.txt) do del %%i
del list.txt
@echo off &setlocal
set "folder=%userprofile%\A"
set "dirlist=my dirlist.txt"
dir /b "%folder%" > "%dirlist%"
copy "%folder%"
rem doit here
for /f "usebackq delims=" %%a in ("%dirlist%") do erase "%%~a"
照顾重复文件属于您。
@echo off
attrib +R *.*
copy \A\*.*
rem run commands
del *.*
attrib -R *.*
当然,此方法仅在命令不修改任何原始文件时才有效,但它更快并且还可以防止覆盖任何原始文件。