2017-05-28 22 views
0

私は、.txtファイルで入力された場所からファイルを削除するコードを作成しています。バッチファイルRdエラー:ディレクトリが空ではありません

@echo off 
cd C:\Users\Troy\Desktop\Details 
set /p loc=<Location.txt 
rd /s /q "%loc%" 
echo %loc% 
pause 

開いたときにこのコードは、私に今すぐ次の出力

The directory is not empty. 
C:\Users\Troy\Downloads\TV Shows  
Press any key to continue ... 

ファイルLocation.txtを返しますが
C以下が含ま:\ Users \ユーザートロイ\ダウンロード\に従っているテレビ番組上記の出力の2行目にあるエコー出力

また、C:\ Users \ Troy \ Desktopにバッチファイルを保存しました。
同じ場所に起因する干渉。

奇妙な部分は、別のバッチファイルから次のコードを同じ場所で実行しても、完全に正常に実行され、すべてのファイルが削除されます。

@echo off 
set loc=C:\Users\Troy\Downloads\TV Shows 
rd /s /q "%loc%" 
echo %loc% 
pause 

ように、2つのコード間の唯一の違いは、他の一つは予め入力された変数を有するのに対し、最初のものは、特定のファイルからの可変位置を設定することです。

はまた、私は上記のコードで、次のコード

@echo off 
cd C:\Users\Troy\Desktop\Details 
set /p loc=<Location.txt 
cd %loc% 
del /s /q * >nul 2>&1 
cd C:\Users\Troy\Desktop\Details 
rd /s /q "%loc%" 
echo %loc% 
pause 

を使用して場所からファイルを削除しようとしましたが、削除コマンドは完全に正常に動作し、内のすべてのファイルを削除します。しかし、フォルダとサブフォルダはすべて残っています。つまり、は、コマンドが機能していません。

私はattrib -hを試したこともありますが、どちらもうまくいきません。 また、私はrmdir /s /qのさまざまな順列と組み合わせでこれを試したことにも注意してください。しかし、動作しません。

助けてください。

+0

ディレクトリツリーが空であることを確認してください。%loc% "'もしあなたが見たいと思っていないものがあれば、もっと確実な火を使ってください。 'ERASE 'コマンドを実行します。 'DEL/F/S/Q/A"%loc%\ * "' – Compo

+0

あなたの返事をありがとう。私はあなたが言ったことをやってみたが、同じ結果で終わった。あなたのデバイスでも同様のことが起きているかどうか確認できますか? – x0nar

+0

私は申し訳ありませんが、私は比較的無知なものを複製しようとするつもりはありません。しかし、私はこの問題を以前に見たことがありますが、それでも原因は考えられません。その時点での解決策はコマンドを再実行することでした。したがって、 'rd'コマンドの後に新しい行を追加しようとすると' If Exist '%loc%\ "RD/S/Q"%loc% "'となります。理想的ではありませんが、不可解にも機能することが知られています。 – Compo

答えて

0

ファイルシステムで何らかの破損が発生している可能性があります。 chkdsk /fを実行してみてください。それを実行するには再起動する必要がありますが、修正できるものが見つかったかどうかを確認して、問題が解決しないかどうかを確認してください。

関連する問題