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, 3554 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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 ...