Я использую robocopy для удаления папок / файлов из каталога.
Сценарий:
SET source1=c:\source
SET destination=F:\destination
SET switch1=/r:10 /w:1 /e /create /minage:10 /mt /LOG:F:\logs\backup.log
FOR /d %%i IN ("%source1%\*") DO ROBOCOPY "%%i" "%destination%\%%~nxi" %switch1%
FOR /d %%p IN ("%source1%\*") DO RMDIR "%%p" /s /q
FOR /d %%q IN ("%destination%\*") DO RMDIR "%%q" /s /q
Исходный каталог выглядит так:
c: \ source \ directory \ file1.txt (12 дней назад)
c: \ source \ directory2 \ file2.txt (5 дней назад)
Моя проблема в этой строке в скрипте:
FOR /d %%p IN ("%source1%\*") DO RMDIR "%%p" /s /q
Эта строка - это не просто RMDIR, каталог, который был скопирован из источника, он удаляет их все. И примечание, я не могу использовать / move, так как он удалит исходный каталог. Если я использую / mov, он не удалит все подкаталоги.
Есть мысли, что я здесь не так? Заранее спасибо.
РЕДАКТИРОВАТЬ: я включаю информацию об исходном каталоге dir / tw / s для устранения неполадок. Папка ABT - это папка, которую следует удалить.
Directory of C:\
09/27/2016 03:08 PM <DIR> .
09/27/2016 12:10 PM <DIR> ..
09/27/2016 03:09 PM <DIR> New Folder
06/25/2014 05:47 AM <DIR> abt
0 File(s)
Directory of C:\New folder
09/27/2016 03:09 PM <DIR>
09/27/2016 03:08 PM <DIR>
09/27/2016 03:09 PM
1 File(s)
Directory of C:\abt
06/25/2014 05:47 AM <DIR>
09/27/2016 03:08 PM <DIR>
03/20/2014 10:08 AM
06/25/2014 05:47 AM
04/28/2014 02:33 PM
05/20/2014 10:47 AM <DIR>
02/18/2014 07:24 PM
05/20/2014 10:51 AM
5 File(s)
Directory of C:\abt\Scripts
05/20/2014 10:47 AM <DIR>
06/25/2014 05:47 AM <DIR>
10/02/2012 11:18 AM
02/02/2012 12:16 PM
02/17/2012 11:32 AM
rmdir /S
удаляет все, это то, для чего он нужен; вы можете добавить параметр/MOVE
вrobocopy
, чтобы он перемещал совпадающие файлы и каталоги в место назначения, тогда вы можете опустить всюfor /D %%p
командную строку ... - person aschipfl   schedule 27.09.2016forfiles /D -10 /C "cmd /c if @isdir==TRUE echo copying @relPath"
- person FloatingKiwi   schedule 27.09.2016FORFILES /P C:\source /M *.* /D -10 /C "CMD /C RMDIR /s /q"
- person Tom Wildt   schedule 27.09.2016FORFILES /P C:\source /M *.* /D -10 /C "CMD /C RMDIR /s /q @path"
- person Tom Wildt   schedule 27.09.2016dir /TW /S c:\source
, мы сможем помочь больше - person FloatingKiwi   schedule 28.09.2016/MOVE
может и удалит исходный каталог только в том случае, если все подпункты соответствуют всем фильтрам ... - person aschipfl   schedule 29.09.2016