horus79

Batch Dateien mit Dasylab 9 ausführen

Hallo Leute, ich bin neu hier und habe folgendes Problem:
Ich möchte mit Dasylab 9.0 eine Batch Datei ausführen, deren Inhalt eine andere Datei umbenennen soll. Leider Funktioniert das nicht und bisher konnte mir niemand sagen warum.

Der Inhalt der Batch Datei lautet:

for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set dateiname=%%d%%c%%b
for /F "tokens=1,2 delims=: " %%a in ('time /t') do set dateiname=%dateiname%_%%a%%b
ren Jan1.txt Jan1%dateiname%.txt
set dateiname=

und bewirkt das die Txt Datei Jan1 umbenant wird in Jan1DatumUhrzeit.txt. Das funktioniert auch wenn ich die Datei doppelklicke. Wenn ich die Datei von Dasylab ausführen lassen funktioniert das nicht. Wenn ich Batch Datein mit Dasylab ausführe deren Inhalt nur Kopierbefehle enthält, funktioniert das aber.
Kann mir jemand sagen warum das so ist, bzw mir sagen wie es gehen könnte?


Gruß

Jan
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 57540

Url: https://administrator.de/forum/batch-dateien-mit-dasylab-9-ausfuehren-57540.html

Ausgedruckt am: 06.05.2025 um 19:05 Uhr

horus79
horus79 25.04.2007 um 14:32:26 Uhr
Goto Top
Das Problem mit Dasylab ist gelößt.

Jetzt würde ich nur noch gerne wissen wie ich die Sekunden an die Uhrzeit dranhängen kann.
Biber
Biber 25.04.2007 um 17:51:33 Uhr
Goto Top
Moin horus79,

das erste Problem war vermutlich, dass die von Dasylab gerufene Batchdatei nicht in dem Verzeichnis mit der Jan1-Datei gelaufen ist.

Also entweder vor den beiden FOR-Anweisungen mit "PushD x:\janVerzeichnis" dorthin wechseln (recommended) oder die Pfadangabe explizit vor dem Dateinamen angeben.

Das zweite Problem, die Sekunden mit einzubauen, ist auch nicht so wild.
Du musst die Variable %time% auswerten statt die Funktion date /t.
Date /t gibt nur hh:mm zurück, %date% gibt auch Sekunden und Millisekunden zurück.

Beispiel am CMD-Prompt:
(=17:42:06  D:\temp=)
>for /f "delims=:, tokens=1-3" %i in ("%time%") do @echo %i%j%k  
174206
oder in Deinem Schnipsel:
...
for /F "tokens=1,2,3,4 delims=. " %%a in ('date/t') do set dateiname=%%d%%c%%b  
for /F "tokens=1-3 delims=:," %%a in ("%time%") do set dateiname=%dateiname%_%%a%%b%%c  
...

Gruss
Biber
[Edit zwei Stunden später:]
Diese Sekunden-Rausdrösel-Mimik wird relativ wortreich auch an anderer Stelle im Forum behandelt:
Dateien mit Erstelldatum und Zeit renamen
[/Edit]
horus79
horus79 26.04.2007 um 14:04:46 Uhr
Goto Top
Danke Biber,

Hat alles super geklappt!