waholin
Goto Top

Batch-Befehl Echo

Hallo,
ich möchte mir mit dem Echo-Befehl das Änderungsdatum einer Datei ansehen bzw. später evtl. noch auswerten.
Ich kann machen was ich will, habe m.E. alles Schreibweisen ausprobiert aber ich bekomme das mit dem echo-Befehl nicht hin.
Was mache ich falsch?
@echo off & setlocal

set "Quelle=W:\Programmierung\Batch\Data"        
set "Ziel=W:\Programmierung\Batch"        
set "Typ=pdf"   
set "down=Downloads"   
set "SK_Kto=Kontoauszug"  
set "SK_Mtg=Mitteilung"    
set "SK_Inf=informieren"      

: Kontoauszug
for %%a in ("%quelle%\*%SK_Inf%*.%typ%") do (    
    for /f "tokens=2 delims=_" %%b in ("%%~na") do (    
        if not exist "%ziel%\%SK_Inf%\%%b" md "%ziel%\%SK_Inf%\%%b" >nul    
 ::       move "%%a" "%ziel%\%SK_Inf%\%%b\"  
		set Datum=%%~ti
    ::schneidet die letzte 6 stellen (Uhrzeit) weg
		set "Datum=!Datum:~,-6!"	  
		Echo: %Datum%
pause
    )
)


Des Weiteren habe ich eine andere Frage:
Damit ich euch nicht immer wegen Kleinigkeiten belästigen muss: Gibt es empfehlenswerte Literatur / Bücher zum Thema "Batchprogrammierung" (unter Windows11)?

LG waholin

Content-ID: 668106

Url: https://administrator.de/contentid/668106

Printed on: October 15, 2024 at 06:10 o'clock

Delta9
Solution Delta9 Sep 13, 2024 at 11:04:13 (UTC)
Goto Top
Warum Batch und nicht Powershell?

$file = Get-Item "C:\MyFolder\MyFile.txt"
$lastModified = $file.LastWriteTime
erikro
erikro Sep 13, 2024 at 11:12:35 (UTC)
Goto Top
Moin!

Mach mal den Doppelpunkt hinter dem Echo weg.

hth

Erik
waholin
waholin Sep 13, 2024 at 11:19:08 (UTC)
Goto Top
Hallo,
da passiert leider auch nichts
gruß
waholin
waholin Sep 13, 2024 at 11:19:48 (UTC)
Goto Top
Hallo Penny,
danke für die hilfreichen Infos

VG waholin
Kraemer
Kraemer Sep 13, 2024 at 11:32:56 (UTC)
Goto Top
Moin,

Damit ich euch nicht immer wegen Kleinigkeiten belästigen muss: Gibt es empfehlenswerte Literatur / Bücher zum Thema "Batchprogrammierung" (unter Windows11)?

falls es bei dir noch nicht angekommen sein sollte: Batch ist von vorgestern. Das brauchst du nicht mehr lernen. Zieh dir lieber die Powershell rein.

Gruß
waholin
waholin Sep 13, 2024 at 11:40:24 (UTC)
Goto Top
Hallo
Alles klar!
VG waholin
Ted555
Ted555 Sep 13, 2024 updated at 15:05:01 (UTC)
Goto Top
Stichwort "Delayed Expansion". Variablen die man in Klammerkontexten setzt sind dort nur über DelayedExpansion abrufbar und müssen in Ausrufezeichen statt Prozentzeichen eingefasst werden weil der Interpreter die Expandierung nur einmalig vornimmt (geklammerte Ausdrücke sind quasi eine einzige Zeile für Batch.

@echo off & setlocal enabledelayedexpansion

REM ........ rest ......
set "Datum=%%~ti"  
echo !Datum!

p.s. Mit Powershell ist das obige einsortieren ein Einzeiler
Get-ChildItem -LiteralPath "W:\Programmierung\Batch\Data" -File -Filter "*informieren*.pdf" | move-item -Destination {(New-Item -Type Dir -Path "$($_.DirectoryName)\informieren\$($_.Basename.split("_")[1])" -Force).FullName} -verbose  
waholin
waholin Sep 13, 2024 at 14:48:05 (UTC)
Goto Top
Hallo Ted555,

danke Dir, werde es nachher versuchen