2017-05-28 5 views
0

Ich habe an einem Code gearbeitet, um die Dateien von einem Speicherort in der TXT-Datei zu löschen.Batchdatei Rd Fehler: Das Verzeichnis ist nicht leer

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

Dieser Code gibt mir die folgende Ausgabe

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

Nun ist die Datei Location.txt, wenn sie geöffnet enthält folgende
C: \ Benutzer \ Troy \ Downloads \ TV-Shows, die in Übereinstimmung mit die Echoausgabe bekomme ich in der zweiten Zeile (der obigen Ausgabe)

Beachten Sie auch, dass ich die Batchdatei unter C: \ Users \ Troy \ Desktop
gespeichert habe So gibt es keinen Grund dafür jede Störung aufgrund derselben Stelle.

Der seltsame Teil ist, wenn ich den folgenden Code aus einer anderen Batch-Datei an der gleichen Stelle ausgeführt wird, läuft es einwandfrei und löscht alle Dateien.

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

So ist der einzige Unterschied zwischen den zwei Codes ist, dass die erste, die variable Position von einer bestimmten Datei setzt, während der andere eine Prä- eingegebene Variable hat. mit dem folgenden Code

@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 

In dem obigen Code

Auch habe ich versucht, Dateien aus dem Verzeichnis zu löschen, funktioniert der Löschbefehl völlig in Ordnung und löscht alle Dateien innerhalb. Aber alle Ordner und Unterordner sind alle, die übrig sind, was bedeutet, dass rd Befehl nicht funktioniert

Ich habe sogar versucht, die attrib -h Sache, aber das funktioniert auch nicht. Beachten Sie auch, dass ich dies mit verschiedenen Permutationen und Kombinationen von rmdir /s /q auch versucht habe. Aber funktioniert nicht.

Jede Hilfe wird geschätzt.

+0

Stellen Sie sicher, dass der Verzeichnisbaum leer ist, 'DIR/B/S/A"% loc% "' Wenn es etwas gibt, das Sie nicht erwartet haben, würde ich vorschlagen, dass Sie ein sichereres Feuer 'ERASE verwenden 'befehle zuerst die Verzeichnisse; 'DEL/F/S/Q/A"% loc% \ * "' – Compo

+0

Vielen Dank für Ihre Antwort. Ich habe versucht, das zu tun, was Sie gesagt haben, endete aber mit dem gleichen Ergebnis. Könnten Sie überprüfen, ob das auch mit Ihrem Gerät passiert? – x0nar

+0

Es tut mir leid, aber ich habe nicht die Absicht zu versuchen, etwas zu replizieren, für das ich relativ ahnungslos bin. Ich habe dieses Problem jedoch schon vorher gesehen, immer noch keine wirkliche Ahnung von der Ursache. Die Lösung zu der Zeit war, den Befehl erneut auszuführen, also versuchen Sie nach dem 'rd'-Befehl, eine neue Zeile hinzuzufügen, 'Wenn vorhanden'% loc% \" RD/S/Q "% loc%" '. Nicht ideal, aber es ist unerklärlicherweise bekannt, dass es funktioniert. – Compo

Antwort

0

Sie könnten unter einer Beschädigung im Dateisystem leiden. Versuchen Sie, chkdsk /f auszuführen. Sie müssen neu starten, um es auszuführen, aber sehen, ob es etwas findet, das es korrigieren kann, dann sehen Sie, ob Ihr Problem weggeht.

Verwandte Themen