2016-04-14 6 views
0

Dieses Stapelscript soll dem PC zugeordnet werden und die Dateien in diesem Ordner mit dem Datum & Zeitstempel umbenennen und an einen anderen Ort auf einem anderen PC kopieren. Es sollte dann alle Dateien in diesem Quellordner löschen, außer für eine Datei mit dem Namen "LBBS.log". Alles funktioniert gut außer dem Löschen-Teil. Es löscht nichts im Ordner und löscht tatsächlich die Batch-Datei selbst. Wenn ich es ausführe, kopiert es sich gut, aber dann löscht es sich. Kann mir bitte jemand sagen, was ich ändern muss, damit das funktioniert? Was vermisse ich? Es ist in einer Windows 7-Umgebung. Danke im Voraus.Skript, das sich versehentlich löscht

net use x: \\MTLLBBS023\C$ 
set "stamp=%date:~4,2%%date:~7,2%%date:~10,4%%time:~0,2%%time:~3,2%%time:~6,2%" 
set "source=MTLLBBS023" 
xcopy /S /E /I x:\logs E:\Data\Logs\MTLLBBS023\%source%-%stamp%.* 
cd x:\Logs 
for %%i in (*) do if not %%i == LBBS.log del %%i 
net use x: /delete 

Antwort

2

Das Problem besteht darin, dass sich Ihre Skript- und Zielverzeichnisse auf separaten Laufwerken befinden.

Wenn Sie cd in ein anderes Verzeichnis eingeben, schlägt der Befehl fehl, wenn Sie versuchen, auf ein anderes Laufwerk zu wechseln, ohne die Option /d zu verwenden.

Anstelle von cd x:\logs sollten Sie sagen cd /d x:\logs - dies wird das Laufwerk und Verzeichnis ändern.

Alternativ kann anstelle die net use und net use delete Befehle, können Sie einfach pushd \\MTLLBBS023\C$ auf das Netzlaufwerk zu gehen (dies kann auch automatisch ein temporäres Netzlaufwerk) und dann popd am Ende des Skripts, das Verzeichnis zu verlassen und entfernen Sie die Laufwerk zugeordnet. Auf diese Weise brauchen Sie überhaupt nicht cd.

+0

Ty für die Beantwortung. Ich konnte das bisher nicht testen und werde am Ende des Skripts geordert. Ich verwende cd/d x: \ logs basierend auf Ihrem Vorschlag. Nach "net use x:/delete" heißt es: "Es sind offene Dateien und/oder unvollständige Verzeichnissuchen auf der Verbindung zu x: Ist es in Ordnung, die Verbindung zu unterbrechen und sie geschlossen zu halten? [N] : " Warum sagt es mir, dass es offene Dateien gibt, wenn nicht, und wie kann ich es nur dazu bringen, die Verbindung zu ignorieren und zu schließen? Vielen Dank für deine Hilfe. – Sammi8796