Woran kann es liegen, dass beim Erstellen von Dateien mit %datum% und %zeit% im Dateinamen alle 30 Sekunden bereits existierende Dateien überschrieben werden?

Antwort

Das Problem liegt daran, dass die Variablen `%datum%` und `%zeit%` in Windows-Batchdateien oft Zeichen wie Doppelpunkte, Punkte oder Leerzeichen enthalten, die in Dateinamen nicht erlaubt sind. Dadurch kann es passieren, dass die Datei nicht wie erwartet erstellt wird oder der Name nicht eindeutig ist. Außerdem ändern sich `%zeit%` und `%datum%` nur im Sekundentakt bzw. pro Tag. Wenn du innerhalb einer Sekunde zwei Dateien erzeugst, hätten sie denselben Namen. **Lösung:** 1. Ersetze unerlaubte Zeichen in den Variablen. 2. Nutze Sekunden im Zeitstempel, um eindeutige Namen zu bekommen. **Beispiel für eine Batchdatei:** ```batch @echo off setlocal rem Datum und Zeit formatieren set "ts=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%" set "ts=%ts: =0%" rem Datei erzeugen copy nul "C:\%ts%_%computername%_%username%.txt" >nul ``` **Erklärung:** - `%date:~6,4%` holt das Jahr, `%date:~3,2%` den Monat, `%date:~0,2%` den Tag (je nach Ländereinstellung ggf. anpassen). - `%time:~0,2%` Stunde, `%time:~3,2%` Minute, `%time:~6,2%` Sekunde. - Mit `%ts: =0%` werden Leerzeichen durch Nullen ersetzt. **Tipp:** Wenn du das Skript alle 30 Sekunden ausführen willst, kannst du es mit `timeout /t 30` in eine Schleife setzen. **Beispiel für eine Endlosschleife:** ```batch @echo off :loop rem Datum und Zeit formatieren set "ts=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%" set "ts=%ts: =0%" copy nul "C:\%ts%_%computername%_%username%.txt" >nul timeout /t 30 goto loop ``` **Hinweis:** Passe die Datums- und Zeit-Formatierung ggf. an dein System an, da sie je nach Ländereinstellung unterschiedlich sein kann.

Kategorie: Computer Tags: Batch Datum Dateiname
Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Wie kann man in einer Windows-Batchdatei einen Dateinamen mit Datum und Uhrzeit ohne unzulässige Zeichen wie Doppelpunkte erstellen?

Das Problem entsteht, weil das Windows-Datums- und Zeitformat Zeichen wie Doppelpunkte (:) und Schrägstriche (/) enthält, die in Dateinamen nicht erlaubt sind. Um das zu umgehen, musst du da... [mehr]

Wie kann ich mit einem Batchbefehl einen Tastendruck wie F15 simulieren?

Mit reinen Windows-Batchdateien (also `.bat` oder `.cmd`) ist das Simulieren von Tastendrücken wie F15 nicht direkt möglich, da die Windows-Befehlszeile keine Funktionen zum Senden von Tasta... [mehr]

Wie kann ich Windows 11 Pro per Batchbefehl ohne Adminrechte in den Standbymodus versetzen?

Um unter Windows 11 Pro ohne Adminrechte den Standbymodus per Batchbefehl zu aktivieren, kannst du folgenden Befehl verwenden: ```batch rundll32.exe powrprof.dll,SetSuspendState 0,1,0 ``` **Hinweise... [mehr]

Wie kann man in einem DOS Batch-Skript alle Excel-Instanzen beenden?

Um in einem DOS-Batch-Skript (unter Windows) alle laufenden Instanzen von Microsoft Excel zu beenden, kannst du den folgenden Befehl verwenden: ```batch taskkill /IM excel.exe /F ``` **Erklärun... [mehr]

Wie kopiere ich den Dateinamen einer PDF und füge ihn in Excel ein?

Um den Dateinamen einer PDF-Datei zu kopieren und in Excel einzufügen, kannst du folgende Schritte befolgen: 1. **PDF-Datei finden**: Navigiere zu dem Ordner, in dem sich die PDF-Datei befindet.... [mehr]

Vollständigen Dateinamen im Explorer anzeigen

Um im Windows Explorer den vollständigen Dateinamen anzuzeigen, kannst du folgende Schritte befolgen: 1. Öffne den Windows Explorer. 2. Klicke auf die Registerkarte "Ansicht" oben... [mehr]

.bat findet exe nicht im zweiten übergeordneten Ordner nach externem Start?

Wenn eine Batch-Datei (.bat) eine .exe-Datei in einem übergeordneten Ordner nicht findet, könnte das an mehreren Faktoren liegen, wie z.B. dem aktuellen Arbeitsverzeichnis oder der Pfadangab... [mehr]

Wie starte ich eine Datei aus zwei übergeordneten Ordnern mit Batch?

Um in einer Batch-Datei eine Datei zu starten, die sich zweigeordnete Ordner höher befindet kannst du den relativen Pfad verwenden. Hier ist ein Beispiel, wie du das machen kannst: ```batch @ech... [mehr]