Ich habe nach einer Lösung für mein Problem gesucht, aber es ist seltsam und ich kann nicht genau herausfinden, wo es falsch läuft.Batch-Datei funktioniert nicht richtig, es sei denn, ich beobachte es
Ich habe eine Batch-Datei, die ziemlich einfach scheint. In einem Verzeichnis, das zwei Dateien enthält, soll es eins löschen, das andere kopieren und dann in das umbenennen, was die gerade gelöschte Datei genannt hat. Bis auf die Umbenennung scheint alles richtig zu funktionieren. Es scheint fast, dass das Skript zweimal ausgeführt wird, aber ich kann keinen tatsächlichen Beweis dafür finden. Siehe unten:
SET filepath="\\server-name\directory with a space\"
SET oldFile=filename.csv
SET curFile=filename_*.csv
REM ===Delete current filename.csv===
IF EXIST %filepath%%oldFile% DEL %filepath%%oldFile%
REM ===Copy all versions of .csv files that begin with filename_ to the Archive folder===
IF EXIST %filepath%%curFile% COPY /y %filepath%%curFile% %filepath%%Archive
REM ===Rename the .csv file beginning with filename_ to filename.csv===
IF EXIST %filepath%%curFile% RENAME %filepath%%curFile% %oldFile%
Wenn ich dies manuell ausführen, scheint es gut zu funktionieren. Wenn ich es jedoch von einer geplanten Task aufrufen lasse, scheint es zweimal ausgeführt zu werden ... das heißt, es löscht die Datei filename.csv, kopiert den Dateinamen _ *. Csv an die richtige Stelle, scheint dann aber die zweite Datei zu löschen anstatt es umzubenennen.
Wie gesagt, ich bin wirklich unklar, was eigentlich gemacht wird. Ich habe versucht, die Ergebnisse in einer Ausgabedatei zu protokollieren, aber darin ist nichts hilfreich.
Kann jemand etwas sehen, das ich vermisse?
Vielen Dank im Voraus.
Zum Testen fügen Sie ein 'echo% Dateipfad %% oldFile%' - es gibt '" \\ Server-Name \ Verzeichnis mit einem Leerzeichen \ "Dateiname.csv" - wahrscheinlich nicht das, was Sie wollten. Antwort von Magoo zeigt die korrekte Zitatsyntax für 'set'. – zett42
Vielen Dank bis jetzt zett42, lit, und Magoo für die Hilfe bei den Anführungszeichen-Positionen und besseren Praktiken. Ich denke, das hilft sehr, auch wenn es am Ende das Problem nicht vollständig löst. :) – Night1505