私はrobocopyを使用してディレクトリからフォルダやファイルを削除しています。 minageでフォルダとファイルを移動するスクリプト
スクリプト:C:\(12日齢)のソースの\ディレクトリ\ FILE1.TXT
C:\ソース\ directory2 \
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
ソースディレクトリは次のようになりますFILE2.TXT(5日齢)
私の問題は、スクリプトにこの行です:
FOR /d %%p IN ("%source1%\*") DO RMDIR "%%p" /s /q
この行は、ソースからコピーされたディレクトリのRMDIRだけではなく、すべてのディレクトリを削除します。とメモ、私は使用することはできません/ソースディレクトリを削除するように移動します。/movを使用すると、すべてのサブディレクトリが削除されることはありません。
私はここで何が間違っていますか?前もって感謝します。
EDIT:トラブルシューティングのためのソースディレクトリ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'は全てを削除します。 '/ MO%'オプションを 'robocopy'に追加することで、ファイルやディレクトリが目的地に移動するようにすることができます。'/D %% p 'のコマンドライン全体を省略することができます... – aschipfl
/moveが削除されます親ディレクトリ(ソースディレクトリ)。私はそれを保つことができる必要があります。したがって、 'c:\ source'は削除されます。また、/ movを使用した場合、サブディレクトリの 'c:\ source'の下には削除されません。 –
forfilesを使用して年齢検査を行い、必要なコマンドを書き込むことができます。 'forfiles/D -10/C" cmd/c if isdir == TRUEエコーコピー@relPath "' – FloatingKiwi