Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variablen in Batch-Dateien

Frage Entwicklung Batch & Shell

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

18.03.2011 um 21:51 Uhr, 4143 Aufrufe, 2 Kommentare

Hallo,
ich habe mehrere Batchdateien erstellt zur Systempflege (Datenträgerbereinigung, Temp-Dateien löschen, Protokolle löschen, Defragmentierung, Acronis-Backup).
Zwecks Protokollierung wird eine Logdatei erstellt. Allerdings möchte ich das Datum und die Uhrzeit in einem bestimmten Format eintragen.

Da während des Vorgangs auch einige Neustart`s notwendig sind (ich benutze Drive.Keeper für meine Internet-Partition, da z.B. die Defragmentierung mittels O&O-defrag bei aktiv nicht möglich ist), und auch die Ausführung der Haupt-Batch (insgesamt rund 550 Zeilen) die Zeit vergeht, muss ich ständig vor einem Protokoll-Eintrag die Uhrzei-Variable aktuallisieren. Klar, ich könnte auch einfach %TIME% nutzen, aber das möchte ich nicht. Es geht mir da irgendwie um`s Prinzip.

Gibt es eine Möglichkeit, wenn ich innerhalb der Batch mittels GOTO zu einer Stelle springe, hier die Variable aktuallisiere, und dann zum Ausgang zurückkehre und fortsetze?
Oder muss ich wirklich den Umweg über eine extra Batch mittels CALL gehen? Ich fände es interessanter es innerhalb der Batch abzuwickeln. Ich könnte natürlich für jede Aktuallisierung der Variablen eine extra Sprungadresse machen. Aber das währe ja nicht gerade elegant. Da kann ich es ja auch gleich (wie es jetzt ist) unmittelbar vor dem Logeintrag reinsetzen.

Es interessiert mich ganz einfach, ob es da auch eine andere Lösung geben könnte.

Hier meine zwei formatierten Variablen, die ich immer wieder aktuallisieren muss:

01.
SET DATUM=%date:~-4%-%date:~3,2%-%date:~0,2% 
02.
SET UHRZEIT=%TIME% & for /F "tokens=1-3 delims=:," %%i in ("%TIME%") do SET "UHRZEIT=%%i:%%j"
Bin ja mal gespannt, ob es da doch eine Lösung gibt...

Gruß
Torsten
Mitglied: bastla
18.03.2011 um 22:02 Uhr
Hallo TorstenB!

Soferne ich Dich richtig verstehe, benötigst Du ein Unterprogramm - daher einfach
01.
... 
02.
call :GetTime 
03.
echo %DATUM% %UHRZEIT% 
04.
... 
05.
goto :eof 
06.
 
07.
:GetTime 
08.
SET "DATUM=%date:~-4%-%date:~-7,2%-%date:~-10,2%" 
09.
for /F %%i in ('time /t') do SET "UHRZEIT=%%i" 
10.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: goodbytes
19.03.2011 um 10:11 Uhr
Hallo bastla,
genau das ist es!

Manchmal kann es ja so einfach sein; ich hätte mir nur die call-Optionen genauer ansehen müssen...

Ich war beisher immer der Meinung, dass ich damit nur Externes aufrufen kann. Jetzt bin ich eines besseren belehrt...

Vielen Dank, bastla !!!

Gruß
Torsten
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...