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-Key: 8088389228

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

Printed on: May 11, 2024 at 14:05 o'clock

Member: chkdsk
chkdsk Aug 09, 2023 updated at 12:52:54 (UTC)
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
Member: Kraemer
Solution Kraemer Aug 09, 2023 at 12:52:28 (UTC)
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
Member: CurlySue1985
CurlySue1985 Aug 09, 2023 at 12:57:52 (UTC)
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
Mitglied: 7907292512
7907292512 Aug 09, 2023 updated at 13:06:20 (UTC)
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]}  
Member: michi1983
michi1983 Aug 09, 2023 at 12:58:37 (UTC)
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