Zeit auslesen und txt speichern oder löschen
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
Hoffe ihr könnt mir helfen
[Edit Biber] Codeformatierung [/Edit]
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
@ECHO OFF
ECHO Import aller Dateien
for /f "delims=" %%i in ('dir C:\TEMP\Test\*.txt /s /b /a-d') do call :splitDate %%~ti
goto :eof
:splitDate Parameter1 ist Datum , Parameter2 ist Zeit
for /f "tokens=1-5 delims=.:, " %%a in ("%1.%2") do (
set TT=%%a
Set MM=%%b
Set JJ=%%c
Set hh=%%d
Set mi=%%e
echo Tag: %TT% Monat: %MM% Jahr: %JJ% Stunde: %hh% Minute: %mi%
IF %hh% LSS 12 (
echo Datei Speichern
rem hier soll jetzt die txt kopiert werden
) ELSE (
echo Datei löschen
rem hier soll die txt gelöscht werden
)
)
Goto :eof
[Edit Biber] Codeformatierung [/Edit]
Please also mark the comments that contributed to the solution of the article
Content-Key: 160885
Url: https://administrator.de/contentid/160885
Printed on: April 19, 2024 at 17:04 o'clock
9 Comments
Latest comment
moin und willkommen...
zum Thema:
Benutze den doch.
Gruß
zum Thema:
Ich habe folgendes Problem.
und@ECHO OFF
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ß
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:
wo sie dann als %3 (allerdings ohne Pfad) ankommt ...
... daher würde ich vorweg (als Zeile 3) mit
gleich in den passenden Ordner wechseln (und nach Zeile 4 dann das Gegenstück "
Grüße
bastla
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"
... daher würde ich vorweg (als Zeile 3) mit
pushd "C:\TEMP\Test"
popd
" ergänzen) ...Grüße
bastla
Eine Batch - siehe mein verlinktes Textchen über echo off ist eine zusammenfassung einzelner Befehle, die jeweils funktionieren müssen.
Gruß
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, aber ohne den grünen Haken ist das nur die halbe Miete.
Gruß