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, 4175 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
gelöst Laufwerksbezeichnung (label) in Batch als Variable nutzen (21)

Frage von tobias.mock zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...