复制然后删除文件

时间:2013-08-15 00:06:03

标签: windows batch-file

我想创建一个简单的批处理脚本:

  1. 将文件夹A内的所有文件复制到当前目录(也包含一些文件)
  2. 运行一些命令
  3. 删除所有复制的文件
  4. 一个直接的解决方案是遍历A内的所有文件,复制它们并保留它们的列表。然后在最后清理。

    但我想知道是否有更好的解决方案。

4 个答案:

答案 0 :(得分:1)

@echo off
copy "c:\A\*.*" .
rem run commands
for %%a in ("c:\a\*.*") do del "%%~nxa"

答案 1 :(得分:0)

保存文件列表,复制文件,执行操作,然后使用列表删除:

dir /b A >list.txt
copy A\*.* .

rem do stuff here

for /F "delims=" %%i in (list.txt) do del %%i
del list.txt

答案 2 :(得分:0)

@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"

照顾重复文件属于你。

答案 3 :(得分:0)

@echo off
attrib +R *.*
copy \A\*.*
rem run commands
del *.*
attrib -R *.*

当然,这种方法只有在命令不修改任何原始文件时才有效,但它更快,并且还可以防止覆盖任何原始文件。