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.
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
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
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