curlysue1985
Goto Top

Batch - Teil-String aus Dateinamen auslesen

Hi Leute,

ich verzweifel gerade. Ich habe einen Ordner mit ganz vielen Dateien nach dem Muster "Datum Text1 Text2 .....". Nun möchte ich gerne aus den Dateinamen immer den Text1 auslesen - also quasi den String zwischen dem ersten und zweiten Leerzeichen. Habt ihr evtl. eine Idee, wie das geht?

Tausend dank für eure Hilfe
Kati

Content-ID: 8088389228

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

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

chkdsk
chkdsk 09.08.2023 aktualisiert um 14:52:54 Uhr
Goto Top
Hier mit der Powershell. Batch ist schon arg veraltet
$folderPath = "PFAD ZUM ORDNER"  

$fileList = Get-ChildItem -Path $folderPath

$extractedTexts = @()

foreach ($file in $fileList) {
    $fileNameParts = $file.Name -split ' '  

    if ($fileNameParts.Length -ge 2) {
        $text1 = $fileNameParts[1]

        $extractedTexts += $text1
    }
}

$combinedText = $extractedTexts -join "`r`n"  

$outputFilePath = "C:\temp\text.txt"  

$combinedText | Out-File -FilePath $outputFilePath
Kraemer
Lösung Kraemer 09.08.2023 um 14:52:28 Uhr
Goto Top
Moin,

ChatGPT bei dir noch nicht angekommen?

@echo off
setlocal enabledelayedexpansion

set "verzeichnis=C:\Pfad\Zum\Verzeichnis"  

for %%F in ("%verzeichnis%\*.*") do (  
    for /f "tokens=2" %%A in ("%%~nF") do (  
        echo Mittlerer Teil der Datei: %%A
    )
)

endlocal
CurlySue1985
CurlySue1985 09.08.2023 um 14:57:52 Uhr
Goto Top
Hi chkdsk - danke für den Code, aber Powershell kann ich leider nicht nutzen. Sonst hätte ich es gemacht... und Kraemer - danke dir. funktioniert einwandfrei bzw. konnte ich super einbinden... und doch - hatte chatgpt auch probiert - aber wahrscheinlich hatte ich die Frage falsch formuliert :D Ich danke dir jedenfalls
7907292512
7907292512 09.08.2023 aktualisiert um 15:06:20 Uhr
Goto Top
Zitat von @chkdsk:

Hier mit der Powershell. Batch ist schon arg veraltet
$folderPath = "PFAD ZUM ORDNER"  

$fileList = Get-ChildItem -Path $folderPath

$extractedTexts = @()

foreach ($file in $fileList) {
    $fileNameParts = $file.Name -split ' '  

    if ($fileNameParts.Length -ge 2) {
        $text1 = $fileNameParts[1]

        $extractedTexts += $text1
    }
}

$combinedText = $extractedTexts -join "`r`n"  

$outputFilePath = "C:\temp\text.txt"  

$combinedText | Out-File -FilePath $outputFilePath

Viel Code für wenig zu tun ...
Get-ChildItem 'D:\Ordner' -File | %{($_.Basename -split '\s+')[1]}  
michi1983
michi1983 09.08.2023 um 14:58:37 Uhr
Goto Top
Quote from @CurlySue1985:

Hi chkdsk - danke für den Code, aber Powershell kann ich leider nicht nutzen. Sonst hätte ich es gemacht... und Kraemer - danke dir. funktioniert einwandfrei bzw. konnte ich super einbinden... und doch - hatte chatgpt auch probiert - aber wahrscheinlich hatte ich die Frage falsch formuliert :D Ich danke dir jedenfalls

ChatGPT kann auch Deutsch. Deine Fragen von oben funktioniert exakt so als Eingabe face-wink