Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4182 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 In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

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

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

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

(4)

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(8)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows Server
Seit IP Umstellung DC DNS Fehler (29)

Frage von Yaimael zum Thema Windows Server ...

Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (16)

Frage von Voiper zum Thema Weiterbildung ...