Systemvariable in Batch verwenden - funktioniert nicht
Folgendes Problem:
Für eine Anwendung sind Verzeichnisse in Systemvariablen gespeichert. Nun will ich in einer Batchdatei diese Systemvariable auslesen und für einen copy-Befehl nutzen.
Diese Batchdatei habe ich bisher erstellt:
REM zeigt den Inhalt der Variable an (c:\tmp)
set wagtmp
REM soll die Datei test.txt nach C:\tmp kopieren
copy test.txt %wagtmp%
Ich erhalte immer eine Fehlermeldung, dass die Datei nicht auf sich selbst kopiert werden kann. Stimmt auch, denn in der Ausgabe von copy fehlt das Zielverzeichnis. Da sollte doch "c:\tmp" stehen???
Was läuft hier falsch? Geht das überhaupt?
Gruß Deauville
Für eine Anwendung sind Verzeichnisse in Systemvariablen gespeichert. Nun will ich in einer Batchdatei diese Systemvariable auslesen und für einen copy-Befehl nutzen.
Diese Batchdatei habe ich bisher erstellt:
REM zeigt den Inhalt der Variable an (c:\tmp)
set wagtmp
REM soll die Datei test.txt nach C:\tmp kopieren
copy test.txt %wagtmp%
Ich erhalte immer eine Fehlermeldung, dass die Datei nicht auf sich selbst kopiert werden kann. Stimmt auch, denn in der Ausgabe von copy fehlt das Zielverzeichnis. Da sollte doch "c:\tmp" stehen???
Was läuft hier falsch? Geht das überhaupt?
Gruß Deauville
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 102540
Url: https://administrator.de/forum/systemvariable-in-batch-verwenden-funktioniert-nicht-102540.html
Ausgedruckt am: 20.05.2025 um 01:05 Uhr
12 Kommentare
Neuester Kommentar

Hallo,
Du solltest der Variablen "wagtmp" einen Wert zuordnen, z.B. "SET wagtmp=C:\Temp".
Nur mit "set wagtmp" wird die Variable "nicht" gesetzt, also sozusagen "geleert".
Gruß René
Du solltest der Variablen "wagtmp" einen Wert zuordnen, z.B. "SET wagtmp=C:\Temp".
Nur mit "set wagtmp" wird die Variable "nicht" gesetzt, also sozusagen "geleert".
Gruß René
Hallo Deauville und willkommen im Forum!
Liefert denn die Zeile
die folgende Ausgabe?
Dann wäre es tatsächlich nicht nachvollziehbar, warum in der "copy"-Zeile kein Wert für %wagtemp% vorhanden wäre - würde allerdings die Ausgabe
lauten, wäre natürlich vorweg eine Zuweisung erforderlich, also:
Grüße
bastla
P.S.: Für das Posten von Code hätten wir passende ...
Liefert denn die Zeile
set wagtmp
wagtemp=c:\temp
Die Umgebungsvariable "wagtemp" ist nicht definiert.
set "wagtemp=c:\temp"
bastla
P.S.: Für das Posten von Code hätten wir passende ...

Hallo,
hoppala @bastla, hast natürlich recht.
Diese Meldung "Datei kann nicht auf sich selbst kopiert werden" erscheint wenn die Batch schon in dem Verzeichnis steht wohin eigentlich kopiert werden soll.
Also, angenommen die Variable wagtmp zeigt richtig auf "C:\tmp" und die Batchprozedur steht im Verzeichnis "C:\tmp", dann läuft das COPY auf den Fehler.
Gruß - René
hoppala @bastla, hast natürlich recht.
Diese Meldung "Datei kann nicht auf sich selbst kopiert werden" erscheint wenn die Batch schon in dem Verzeichnis steht wohin eigentlich kopiert werden soll.
Also, angenommen die Variable wagtmp zeigt richtig auf "C:\tmp" und die Batchprozedur steht im Verzeichnis "C:\tmp", dann läuft das COPY auf den Fehler.
Gruß - René

Hallo,
na wenigstens ist etwas richtig.
Gruß - René
na wenigstens ist etwas richtig.
Gruß - René
@bastla
Hmmm,
Auch wenn ich sein/ihr System nicht kenne ...
- eine Systemvariable namens wagtmp könnte höchstens von einem relativ lockeren Betriebssystem-Hersteller kommen...
Vielleicht gibt es da ja jetzt so ein neues Super-OS nur für Insider.... und die dürfen alle deswegen den Namen nicht sagen .... ist ja ein Geheimtipp....
Grüße
Biber
Hmmm,
Auch wenn ich sein/ihr System nicht kenne ...
- eine Systemvariable namens wagtmp könnte höchstens von einem relativ lockeren Betriebssystem-Hersteller kommen...
Vielleicht gibt es da ja jetzt so ein neues Super-OS nur für Insider.... und die dürfen alle deswegen den Namen nicht sagen .... ist ja ein Geheimtipp....
Grüße
Biber