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

Ausgedruckt am: 19.11.2024 um 00:11 Uhr

Delta9
Lösung Delta9 13.09.2024 um 13:04:13 Uhr
Goto Top
Warum Batch und nicht Powershell?

$file = Get-Item "C:\MyFolder\MyFile.txt"
$lastModified = $file.LastWriteTime
erikro
erikro 13.09.2024 um 13:12:35 Uhr
Goto Top
Moin!

Mach mal den Doppelpunkt hinter dem Echo weg.

hth

Erik
waholin
waholin 13.09.2024 um 13:19:08 Uhr
Goto Top
Hallo,
da passiert leider auch nichts
gruß
waholin
waholin 13.09.2024 um 13:19:48 Uhr
Goto Top
Hallo Penny,
danke für die hilfreichen Infos

VG waholin
Kraemer
Kraemer 13.09.2024 um 13:32:56 Uhr
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 13.09.2024 um 13:40:24 Uhr
Goto Top
Hallo
Alles klar!
VG waholin
150704
150704 13.09.2024 aktualisiert um 17:05:01 Uhr
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 13.09.2024 um 16:48:05 Uhr
Goto Top
Hallo Ted555,

danke Dir, werde es nachher versuchen