Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
File 循环浏览文件夹,复制和删除_File_Batch File - Fatal编程技术网

File 循环浏览文件夹,复制和删除

File 循环浏览文件夹,复制和删除,file,batch-file,File,Batch File,我有一个包含子文件夹的文件夹,如下所示:我能够将文件夹和子文件夹从test1循环复制到test3。但我想通过在复制后删除每个文件夹来扩展功能 但是我无法取而代之的是删除所有测试1到测试3文件夹。测试文件夹只是一个例子,文件夹可以是任何名称 "C:\BACKUP_FDM_FILES\localbackup\test1" "C:\BACKUP_FDM_FILES\localbackup\test2" "C:\BACKUP_FDM_FILES\localbackup\test3" pushd "C:

我有一个包含子文件夹的文件夹,如下所示:我能够将文件夹和子文件夹从test1循环复制到test3。但我想通过在复制后删除每个文件夹来扩展功能 但是我无法取而代之的是删除所有测试1到测试3文件夹。测试文件夹只是一个例子,文件夹可以是任何名称

"C:\BACKUP_FDM_FILES\localbackup\test1"
"C:\BACKUP_FDM_FILES\localbackup\test2"
"C:\BACKUP_FDM_FILES\localbackup\test3"

pushd "C:\BACKUP_FDM_FILES"
for /f "tokens=*" %%G in ('dir /b /s /a:d ') do ( 
  echo Found %%G

  XCOPY  %%G  "C:\FDM\Upload" /e /s /y

  if errorlevel 0 (
    echo Copy  succesffully copied reason Files were copied without error and you can delete the content folder   
    rd "%%G\*"  /s /q
    mkdir "%%G"
  )
)
popD

pause
您正在使用
pushd
转到备份文件夹,因此需要使用
popd
返回父文件夹


如果您使用XCOPY,为什么不使用“继任者”ROBOCOPY而不进行任何循环,删除并重新创建文件夹?喜欢

robocopy "C:\BACKUP_FDM_FILES\localbackup\" "C:\FDM\Upload\localbackup" /s /e /COPYALL /dcopy:T /move  

这甚至会保留移动文件夹上的时间戳,以及移动文件上的所有属性。附加好处:您可以使用此命令的所有其他有用选项,无需额外费用。

您可能希望将
for
更改为:
for/d%%G in(*)do(
)。使用
rd
而不使用通配符:
rd/s/q%%G”
是的,你是对的,我想我没有把通配符放在那里,但它仍然不起作用。它删除了所有文件夹,甚至没有创建它。我的代码中有它,我只是省略了它。它在暂停前有)pod
popd
它应该在
rd
之前,而不是在代码结束后。所以路径切换到父文件夹不,robocopy一直在删除父文件夹,尤其是不好,而且robocopy永远也不适合循环。谢谢
robocopy "C:\BACKUP_FDM_FILES\localbackup\" "C:\FDM\Upload\localbackup" /s /e /COPYALL /dcopy:T /move