Batch Problem beim setzen einer Variablen unter MS-DOS.

Kev666

Cadet 3rd Year
Registriert
Apr. 2008
Beiträge
41
Hallo zusammen,

ich hab folgendes Problem das ich unter DOS einer varialen den Wert in einer Textdatei nicht zuweisen kann.

Unter Windows geht das Problemlos mit SET /P, aber unter DOS gibts diesen Parameter nicht.

Der grund für das alles ist folgender. Ich möchte einen Ordner erstellen lassen mit den aktuellen Datum und darin gibt es einen unterordner mit der aktuellen Zeit. Und hier wird dann ein Fehlerprotokoll abgelegt falls ein Fehler in meinen Programm ensteht.

Hab hier mal den Code wo unter Windows funktioniert.
Code:
 ::Erstellt eine Textdatei in der das aktuelle Datum drinsteht.
GETDATE > G:\LOG\DATE.TXT

::Schreibt die erste Zeile in der Datei in die Vriable DAT.
SET /P DAT=< G:\LOG\DATE.TXT

::Erstellt eine Textdatei in der das aktuelle Zeit drinsteht.
GETTIME > G:\LOG\TIME.TXT

::Schreibt die erste Zeile in der Datei in die Vriable TIM.
SET /P TIM=< G:\LOG\TIME.TXT

::Erstellt den Ordner mit dem aktuellen Datum.
MKDIR G:\LOG\%DAT%

::Erstellt den Ordner mit der aktuellen Zeit.
MKDIR G:\LOG\%DAT%\%TIM%

Hat da jemand eine Idee wie ich das ganze lösen könnte unter MS-DOS ???
 
echtes DOS ? Welche Version ? Oder die DOS Box von XP ?

In der DOS Box von XP funktioniert z. B. mkdir %date%.

Gruß
Jürgen
 
Ich boote den PC von einer DOS-Bootdiskette 6.22.

Dort startet dann mein Programm und bei einen Fehler sollen dann die jeweiligen Verzeichnisse und die Datei erstellt werden.
 
Ich habe ein bißchen gegoogelt und diese Seite gefunden. Da wird mit Datum und Uhrzeit gearbeitet.
Mußt nur etwas nach unten blättern. Ich habe leider keinen DOS Rechner zur Hand um das auszuprobieren.
Aber vielleicht kannst du das ausprobieren.
 
Das problem hierbei ist das die mit DATE und TIME arbeiten das funktioniert aber per BATCH unter DOS leider nicht da diese von den Benutzer auch eine eingabe wollen und zwar das neue Datum bzw. die neue Zeit.

Ich probiers zuzeit mit timedate um mir die Zeit und das Datum zu holen aber das programm will nicht so wie ich will echt zum haareraufen :D
 
Bist Du denn auch sicher, dass DOS 6.22 auf Deiner Platte etwas schreiben kann, wenn diese > als 2 GB ist und evtl auch noch NTFS als Dateisystem hat? Versuch doch erstmal die Datei auf der Diskette zu erzeugen, wenn Du noch Platz drauf hast, sonst lege eine leere ein.
 
Das erstellen der verzeichnisse und der Datei funktioniert.

Ich boote ja mit der Diskette und lass da ein Laufwerk von meinen Server mappen und dort lass ich das ganze erstellen. Nur halt das ich diese Werte (Time und Date) in die variable reinbekommen ist das schwierige.
 
Eine Anleitung steht doch in Post #4 verlinkt.
 
@werkam
Ja das ist eine nur ist diese dafür da unter Win98, WinNT usw. solche zu erstellen.
Unter MS-Dos kann ich zwar die Befehle TIME und DATE ausführen jedoch die Ergebnisse nicht in eine Variable speicher das System übernimmt diese einfach nicht.

Der Grund hierfür ist womöglich das DATE und TIME eine Benutzereingabe beim ausführen haben wollen und hab auch schon mit dem Parameter /T gemacht DOS kennt dieses jedoch auch nicht. Da muss es doch einen anderen Lösungansatz geben ???

@CoolHandLuke
Ich kann aufjedenfall ein Laufwerk Mappen von meinen Server und da zugreifen bzw. Daten hinkopieren usw. Da gibts keine Probleme jedoch da erstellen der Verzeichnisse mit dem aktuellen Datum und Zeit ist das Problem da ich unter DOS den Befehl SET /P nicht verwenden kann.
 
Tag zusammen,

ich denke jetzt hab ichs geschafft das Problem zu lösen.

Hab im Internet ein Tool gefunden wo man Datum und Zeit problemlos in eine Variable übergeben kann. Das Tool heißt datetime.com, hier der Link dazu http://www.plop.at/de/dostools.html.

Nun mein Code.
Code:
ECHO @ECHO OFF>>G:\LOG\DATETIME.BAT
DATETIME.COM SET DAT=!d-!m-!y>>G:\LOG\DATETIME.BAT
DATETIME.COM SET TIM=!H-!M-!S>>G:\LOG\DATETIME.BAT

ECHO MKDIR G:\LOG\%%DAT%%>>G:\LOG\DATETIME.BAT
ECHO MKDIR G:\LOG\%%DAT%%\%%TIM%%>>G:\LOG\DATETIME.BAT

Der Inhalt von der DATETIME.BAT lautet nun:
@ECHO OFF

SET DAT=24-11-08
SET TIM=10-25-00

MKDIR G:\LOG\%DAT%
MKDIR G:\LOG\%DAT%\%TIM%

Jetzt klappt alles soweit ganz gut. Möchte mich aber trotzdem bei allen bedanken dir mich unterstützt haben.
 
Zurück
Oben