Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 复制然后删除文件_Windows_Batch File - Fatal编程技术网

Windows 复制然后删除文件

Windows 复制然后删除文件,windows,batch-file,Windows,Batch File,我想创建一个简单的批处理脚本,该脚本: 将文件夹A中的所有文件复制到当前目录(其中还包含一些文件) 运行一些命令 删除所有复制的文件 一个简单的解决方案是循环遍历A中的所有文件,复制它们并保留它们的列表。然后在最后进行清理 但我想知道是否有更好的解决方案。保存文件列表,复制它们,完成工作,然后使用列表删除: dir /b A >list.txt copy A\*.* . rem do stuff here for /F "delims=" %%i in (list.txt) do de

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

  • 将文件夹
    A
    中的所有文件复制到当前目录(其中还包含一些文件)
  • 运行一些命令
  • 删除所有复制的文件
  • 一个简单的解决方案是循环遍历
    A
    中的所有文件,复制它们并保留它们的列表。然后在最后进行清理


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

    保存文件列表,复制它们,完成工作,然后使用列表删除:

    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
    copy "c:\A\*.*" .
    rem run commands
    for %%a in ("c:\a\*.*") do del "%%~nxa"
    
    当然,只有在命令不修改任何原始文件的情况下,此方法才有效,但它速度更快,而且还可以防止覆盖任何原始文件

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