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

Komma aus Variable wird durch Leerzeichen ersetzt

Frage Entwicklung Batch & Shell

Mitglied: themida

themida (Level 1) - Jetzt verbinden

27.11.2012, aktualisiert 01:28 Uhr, 1907 Aufrufe, 4 Kommentare

Ich bin relativ gesehn noch anfänger als bitte kein schläge :D

In meiner Batch datei möchte ich 2 zeichen aus einer variablen mit einer anderen variablen vergleichen.
normalerweiße passiert das ja mit %variable:~0,2% beim ausführen wird aber das Komma durch ein Leehrzeichen ersetzt.
Ich wär für Ideen und Lösung dankbar, die variablen %%c bis %%g mit !lastaccess! (01.01.1970 00:00) zu vergleichen

Meine Batchdatei
01.
setlocal enableDelayedExpansion 
02.
... 
03.
for /f "tokens=1,3 delims=;" %%a in (files.tmp) do ( 
04.
	for /f "tokens=1,2,3,4,5 delims=:." %%c in ('echo %%b') do ( 
05.
		if %%e GEQ !lastaccess:~6,4! ( 
06.
			if %%d GEQ !lastaccess:~3,2! ( 
07.
				if %%c GEQ !lastaccess:~0,2! ( 
08.
					if %%f GEQ !lastaccess:~11,2! ( 
09.
						if %%g GTR !lastaccess:~14,2! ( 
10.
							echo %%a 
11.
12.
13.
14.
15.
16.
17.
18.
del files.tmp 
19.
pause
DOS Ausgabe (Prompt Pfad entfernt)
01.
echo "U:\Pfad\Datei.exe";11776;25.03.2011 09:51;14.06.2012 03:28;14.06.2012 03:28;".exe" 1>files.tmp 
02.
 
03.
for /F "tokens=1,3 delims=;" %a in (files.tmp) do ( 
04.
	for /F "tokens=1,2,3,4,5 delims=:." %c in ('echo %b') do ( 
05.
		if %e GEQ !lastaccess:~6 4! ( 
06.
			if %d GEQ !lastaccess:~3 2! ( 
07.
				if %c GEQ !lastaccess:~0 2! ( 
08.
					if %f GEQ !lastaccess:~11 2! ( 
09.
						if %g GTR !lastaccess:~14 2! ( 
10.
							echo %a 
11.
12.
) ) 
13.
 
14.
del files.tmp
Mitglied: bastla
27.11.2012 um 13:11 Uhr
Hallo themida!

Verwende als Delimiter in Zeile 5 zusätzlich ein Leerzeichen - also
for /f "tokens=1,2,3,4,5 delims=:. " %%c in ("%%b") do (
Die Schreibweise mit "%%b" ist etwas kürzer und in anderen Situationen ev auch sicherer (Stichwort "Sonderzeichen"), hier aber nicht entscheidend ...

Grüße
bastla
Bitte warten ..
Mitglied: themida
27.11.2012, aktualisiert um 16:54 Uhr
hab ich vergessen um Jahreszahl und stunde zu trennen aber das bei meinen Problem keine eine Fehlermeldung kommt irritiert mich sehr
Bitte warten ..
Mitglied: bastla
27.11.2012, aktualisiert um 18:24 Uhr
Hallo themida!

Stimmt - eigentlich sollte die Zeile 9 zu einem Fehler führen ...

... anyhow - die ganze Folge von "if" würde ich ohnehin einsparen und einfach mit
01.
for /f "tokens=1,3 delims=;" %%a in (files.tmp) do ( 
02.
	for /f "tokens=1,2,3,4,5 delims=:. " %%c in ('echo %%b') do ( 
03.
        if "%%e%%d%%c%%f%%g" gtr "!lastaccess:~6,4!!lastaccess:~3,2!!lastaccess:~0,2!!lastaccess:~11,2!!lastaccess:~14,2!" echo %%a 
04.
)
prüfen ...

Anmerkung: Der Vergleich der beiden Timestamps muss als String erfolgen (deshalb die Anführungszeichen), da ein Zahlenwert 201103250951 die Grenze für arithmetische Operationen in CMD (für positive Werte: 2^31 - 1 = 2147483647) natürlich bei Weitem übersteigt.

Grüße
bastla
Bitte warten ..
Mitglied: themida
27.11.2012 um 19:51 Uhr
ich versteh zwar nicht warum als ausgabe !lastaccess:~14 2! kommt aber deine art ist besser und auch nicht so umständlich geschrieben wie meins

danke
Bitte warten ..
Ähnliche Inhalte
Administrator.de Feedback
gelöst Bug? "m f g" (ohne Leerzeichen) wird auch in URL ersetzt (7)

Frage von emeriks zum Thema Administrator.de Feedback ...

Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Visual Studio
Prüfen ob ein Komma in textbox enthalten ist c sharp (7)

Frage von derCreeper zum Thema Visual Studio ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (18)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...