2017-10-13 18 views
0

バッチファイルを作成しようとしています。これは、いくつかの「重要」なものを除いて、DELETEディレクトリのすべてのファイルとディレクトリを削除します。私は重要なファイル/ディレクトリに隠し属性とシステム属性を追加しようとしました。 "del"コマンドで動作するようですが、 "rmdir"は属性に関係なくすべてを削除します。システムファイル以外のディレクトリ内のすべてのファイルを削除するバッチファイル

@echo on 

attrib important.txt +s +h 
attrib folder +s +h 
attrib picture.bmp +s +h 
attrib delete.bat +s +h 


del *.* 
rmdir /s /q C:\Users\Lenovo\Desktop\DELETE 

attrib important.txt -s -h 
attrib folder -s -h 
attrib picture.bmp -s -h 
attrib delete.bat -s -h 

pause 

これを行う方法はありますか?

+0

あなたは属性を追加しようとしたことがあり*** '(読み取り専用)*** r'? –

+0

私は今試しましたが、それでもすべてを削除します。 – ForteAnother

+0

'.bat'ファイルの名前を変更してください。内部コマンドの名前に' delete'という名前が付いている可能性があります。また、なぜこの目的のためにファイル属性を変更するだけの価値があると思うのか、私はちょっと困惑しています。巨大なディレクトリツリーを持っていない限り、既知のファイル名を除くすべてのファイルを削除してツリーを再帰的に表示するだけではいかがでしょうか。 'IF'またはおそらくもっと良い' FINDSTR'を使ってそれを行うことができます。 – Compo

答えて

0

これはPowerShellで行う方法です。これは.ps1スクリプトファイルに配置し、cmd.exeコマンドシェルから実行できます。

ファイルの読み取り専用属性を削除しないように設定します。

(Get-Item .\important.txt).Attributes+="ReadOnly" 

ファイルを削除するには、次のコマンドを使用します。正しいファイルが削除されると確信したら、コマンドの最後から-WhatIfを削除します。

Remove-Item -Path * -Recurse -ErrorAction SilentlyContinue -WhatIf 
関連する問題