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

Zeit auslesen und txt speichern oder löschen

Frage Entwicklung Batch & Shell

Mitglied: NeoLeo

NeoLeo (Level 1) - Jetzt verbinden

16.02.2011, aktualisiert 18.10.2012, 3560 Aufrufe, 9 Kommentare

Ich habe folgendes Problem. Und zwar will ich in einen Ordner die Bearbeitungszeit von Text dateien auselesen und den stündlichen wert vergleichen. Trifft dieser meinen Anforderungen zu soll die txt in einen neuen ordner kopiert werden wenn nicht lösche sie. Ich habe bereits ein Programm von Biber genommen und angepasst was alle txt dateien auflistet und vergleicht. Jedoch wie kann ich nun sagen das auch nur diese eine txt gelöscht bzw kopiert werden soll.
Ich habe bereits den Befehl: del C:\TEMP\Test\*.txt getestet aber da löscht es mir alle txt dateien und das ist nicht das ziel.

Hier der Quelltext
01.
@ECHO OFF 
02.
ECHO Import aller Dateien 
03.
 
04.
for /f "delims=" %%i in ('dir C:\TEMP\Test\*.txt /s /b /a-d') do call :splitDate %%~ti 
05.
goto :eof  
06.
 
07.
:splitDate Parameter1 ist Datum , Parameter2 ist Zeit 
08.
for  /f "tokens=1-5 delims=.:, " %%a in ("%1.%2") do (  
09.
 set TT=%%a  
10.
 Set MM=%%b  
11.
 Set JJ=%%c  
12.
 Set hh=%%d  
13.
 Set mi=%%e  
14.
 
15.
 echo Tag: %TT% Monat: %MM% Jahr: %JJ% Stunde: %hh% Minute: %mi%  
16.
 
17.
 IF %hh% LSS 12 ( 
18.
 echo Datei Speichern  
19.
 rem hier soll jetzt die txt kopiert werden 
20.
 ) ELSE ( 
21.
 echo Datei löschen 
22.
 rem hier soll die txt gelöscht werden 
23.
24.
 
25.
)  
26.
Goto :eof
Hoffe ihr könnt mir helfen

[Edit Biber] Codeformatierung [/Edit]
Mitglied: 60730
16.02.2011, aktualisiert 18.10.2012
moin und willkommen...

zum Thema:
Ich habe folgendes Problem.
und
01.
@ECHO OFF 
täglich grüßt das Murmeltier

for /f "delims=" %%i ... do call
bedeutet doch, du hast in dem Call Block den Dateinamen/verweis dieser einen speziellen Datei.
Benutze den doch.

Gruß
Bitte warten ..
Mitglied: bastla
16.02.2011 um 11:50 Uhr
Hallo NeoLeo und willkommen im Forum!

Damit Du auch wissen kannst, um welche Datei es geht, musst Du eben die auch noch mit in das Unterprogramm übergeben:
for /f "delims=" %%i in ('dir C:\TEMP\Test\*.txt /s /b /a-d') do call :splitDate %%~ti "%%i"
wo sie dann als %3 (allerdings ohne Pfad) ankommt ...

... daher würde ich vorweg (als Zeile 3) mit
pushd "C:\TEMP\Test"
gleich in den passenden Ordner wechseln (und nach Zeile 4 dann das Gegenstück "popd" ergänzen) ...

Grüße
bastla
Bitte warten ..
Mitglied: NeoLeo
16.02.2011 um 12:10 Uhr
Ok die Wert Übergabe ist logisch darüber habe ich jetzt auch schon nachgedacht, danke erstma.
Aber wie sage ich jetz, nachdem festgestellt wurde, das mein wert nicht meinen vorgaben entspricht und diese txt nun lgelöscht werden soll?
Bitte warten ..
Mitglied: bastla
16.02.2011 um 12:17 Uhr
Hallo NeoLeo!
diese txt nun lgelöscht werden soll?
"Diese txt" ist %3 (bzw "C:\TEMP\Test\%~3") ...

Grüße
bastla
Bitte warten ..
Mitglied: NeoLeo
16.02.2011 um 12:35 Uhr
Ok ich habe es nun volgendermasen Umgesetzt
01.
rem @ECHO OFF 
02.
ECHO Import aller Dateien 
03.
pushd "C:\TEMP\Test" 
04.
for /f "delims=" %%i in ('dir C:\TEMP\Test\*.txt /s /b /a-d') do call :splitDate %%~ti "%%i" 
05.
popd "C:\TEMP\Test" 
06.
goto :eof  
07.
 
08.
:splitDate Parameter1 ist Datum , Parameter2 ist Zeit 
09.
for  /f "tokens=1-5 delims=.:, " %%a in ("%1.%2") do (  
10.
 set TT=%%a  
11.
 Set MM=%%b  
12.
 Set JJ=%%c  
13.
 Set hh=%%d  
14.
 Set mi=%%e  
15.
  
16.
 echo Tag: %TT% Monat: %MM% Jahr: %JJ% Stunde: %hh% Minute: %mi%  
17.
  
18.
 IF %hh% LSS 12 ( 
19.
 echo Datei Speichern 
20.
 move C:\TEMP\Test\%~3 C:\TEMP\Test Import\*.* 
21.
 ) ELSE ( 
22.
 echo Datei loeschen 
23.
 "C:\TEMP\Test\%~3" 
24.
25.
)  
26.
Goto :eof
Aber es funktioniert noch irgendwie nicht so richtig

[Edit Biber] Nochmal Codeformatierung nachgezogen. Bei nächsten Mal werde ich unleidlich. [/Edit]
Bitte warten ..
Mitglied: bastla
16.02.2011 um 12:39 Uhr
Hallo NeoLeo!

Aber es funktioniert noch irgendwie nicht so richtig
Es geht doch nix über aussagekräftige Fehlermeldungen ...

Grüße
bastla

P.S.: Verwende doch bitte "Code"-Tags ...
Bitte warten ..
Mitglied: 60730
16.02.2011 um 12:47 Uhr
Eine Batch - siehe mein verlinktes Textchen über echo off ist eine zusammenfassung einzelner Befehle, die jeweils funktionieren müssen.
move C:\TEMP\Test\%~3 C:\TEMP\Test Import\*.*
ist ein Befehl, der so nicht funktioniert. da fehlen ein/zwei paar Gänsefüße und ein (das) paar sternchen gehört da auch nicht hin.
move "C:\TEMP\Test\%~3" "C:\TEMP\Test Import\"
eventuelle weitere Fehler such ich nicht.

Gruß
Bitte warten ..
Mitglied: NeoLeo
16.02.2011 um 13:07 Uhr
Haha,
es funktioniert jetz alles.

Danke euch
Bitte warten ..
Mitglied: 60730
16.02.2011 um 16:51 Uhr
Zitat von NeoLeo:
Haha,
es funktioniert jetz alles.

Danke euch

Bitte, aber ohne den grünen Haken ist das nur die halbe Miete.

Gruß
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

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

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...