sn1p3r
Goto Top

Textdatei automatisch erstellen und füllen

Moin Moin,

ich habe folgendes Problem.
Ich würde gerne automatisch Ordner durchsuchen lassen und dann dazu eine passende Datei erstellen.

Problem:
Es soll im Ordner Urlaub nach allen MP4 Dateien mit dem Suchwort "Strand" gesucht werden.
Für jede gefundene Datei soll nun eine .strm datei angelegt werden, die den selben Dateinamen enthält.

Außerdem soll in dieser Datei der Pfad der mp4 angegeben sein.

Beispiel:

Skript findet "C:\Urlaub\2012\Strandbad.mp4" -> erstellt Strandbad.strm ->Textinhalt: "C:\Urlaub\2012\Strandbad.mp4".
und das für jede gefundene Datei.


Alternativ kann natürlich auch einfach eine .txt erstellt werden und ich änder die Endung mit einem Renamer.

Content-ID: 6768876160

Url: https://administrator.de/forum/textdatei-automatisch-erstellen-und-fuellen-6768876160.html

Ausgedruckt am: 02.04.2025 um 19:04 Uhr

michi1983
michi1983 14.04.2023 um 14:34:24 Uhr
Goto Top
Hallo,

# Define the main folder to search
$mainFolder = "C:\Path\To\Main\Folder\Urlaub"  

# Get all .mp4 files in subfolders
$mp4Files = Get-ChildItem -Path $mainFolder -Filter *.mp4 -File -Recurse

# Loop through each .mp4 file
foreach ($mp4File in $mp4Files) {
    # Create .strm file path
    $strmFilePath = Join-Path -Path $mp4File.DirectoryName -ChildPath "$($mp4File.BaseName).strm"  

    # Create .strm file content
    $strmFileContent = $mp4File.FullName

    # Write .strm file
    Set-Content -Path $strmFilePath -Value $strmFileContent

    Write-Host "Created .strm file: $strmFilePath"  
}

Write-Host "Finished creating .strm files for .mp4 files in $mainFolder."  

10 Sekunden mit ChatGPT.

Gruß
3063370895
Lösung 3063370895 14.04.2023 aktualisiert um 14:51:37 Uhr
Goto Top
Moin

$ordner = "C:\Urlaub"  
$suchwort = "Strand"   
$files =  Get-ChildItem $ordner -File -Recurse -Filter "*$suchwort*.mp4"  

foreach($file in $files){
    $strmFile = Join-Path -Path $file.DirectoryName -ChildPath "$($file.BaseName).strm"  
    New-Item $strmFile -ItemType File
    $file.Fullname | Out-File $strmFile

}

5 Minuten ohne ChatGPT. (Ist das heutzutage sozusagen Bio-Code? face-smile)
6376382705
6376382705 14.04.2023 um 14:41:45 Uhr
Goto Top
$suchwort = "Strand"
eine nicht benutzte Variable @3063370895

Gruß
3063370895
3063370895 14.04.2023 um 14:42:40 Uhr
Goto Top
Zitat von @6376382705:

$suchwort = "Strand"
eine nicht benutzte Variable @3063370895

Gruß

Danke, habs geändert.
3063370895
3063370895 14.04.2023 aktualisiert um 14:48:17 Uhr
Goto Top
Zitat von @michi1983:

Hallo,
## snip ##
10 Sekunden mit ChatGPT.

Gruß

Erfüllt leider nicht die Anforderungen face-smile

Es soll im Ordner Urlaub nach allen MP4 Dateien mit dem Suchwort "Strand" gesucht werden.
michi1983
michi1983 14.04.2023 um 15:01:11 Uhr
Goto Top
Zitat von @3063370895:

Zitat von @michi1983:

Hallo,
## snip ##
10 Sekunden mit ChatGPT.

Gruß

Erfüllt leider nicht die Anforderungen face-smile

Es soll im Ordner Urlaub nach allen MP4 Dateien mit dem Suchwort "Strand" gesucht werden.

Es ist Freitag, ich bin auch schon müde :-P
Außerdem kann der TO ja auch ein wenig selbst rum basteln mit dem was geliefert wurde face-wink
SlainteMhath
SlainteMhath 14.04.2023 um 15:09:01 Uhr
Goto Top
Moin,

oder noch kürzer:
dir c:\Urlaub\*strand*.mp4 /b /s > Strand.strm

lg,
Slainte
3063370895
3063370895 14.04.2023 aktualisiert um 15:10:04 Uhr
Goto Top
Zitat von @SlainteMhath:

Moin,

oder noch kürzer:
dir c:\Urlaub\*strand*.mp4 /b /s > Strand.strm

lg,
Slainte

Für jede gefundene Datei soll nun eine .strm datei angelegt werden,
6247018886
Lösung 6247018886 14.04.2023 aktualisiert um 15:55:51 Uhr
Goto Top
Da ja mit Tag "Batch/Shell" versehen der Vollständigkeit halber noch die Batch Variante für die Opi's ...
@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "C:\Urlaub\*Strand*.mp4"') do (>"%%~dpna.strm" echo.%%a)  
Und die Powershell-Kurzform
ls "C:\Urlaub\*Strand*.mp4" -file -r | %{sc ($_.Fullname -replace 'mp4$','strm') $_.Fullname -Force}  
Cheers briggs
mayho33
mayho33 14.04.2023 um 18:25:48 Uhr
Goto Top
Hi,

Das wäre prinzipiell ein Einzeiler:
[System.IO.Directory]::GetFiles("<SuchPfad>", "*strand*.mp3", [System.IO.SearchOption]::AllDirectories) | Set-Content -Path "C:\data.txt" -ErrorAction SilentlyContinue  
6247018886
6247018886 14.04.2023 um 19:50:27 Uhr
Goto Top
Zitat von @mayho33:

Hi,

Das wäre prinzipiell ein Einzeiler:
[System.IO.Directory]::GetFiles("<SuchPfad>", "*strand*.mp3", [System.IO.SearchOption]::AllDirectories) | Set-Content -Path "C:\data.txt" -ErrorAction SilentlyContinue  

Aufgabe nicht gelesen, setzen 6. :⁠-⁠P.
mayho33
mayho33 14.04.2023 um 20:34:20 Uhr
Goto Top
Zitat von @6247018886:

Zitat von @mayho33:

Hi,

Das wäre prinzipiell ein Einzeiler:
[System.IO.Directory]::GetFiles("<SuchPfad>", "*strand*.mp3", [System.IO.SearchOption]::AllDirectories) | Set-Content -Path "C:\data.txt" -ErrorAction SilentlyContinue  

Aufgabe nicht gelesen, setzen 6. :⁠-⁠P.

Aber nah dran Herr Fessor! 😋
Beispiel:

Skript findet "C:\Urlaub\2012\Strandbad.mp4" -> erstellt Strandbad.strm ->Textinhalt:
"C:\Urlaub\2012\Strandbad.mp4".
und das für jede gefundene Datei.

Dann eben so:
[System.IO.Directory]::GetFiles("<path>", "*strand*.mp3", [System.IO.SearchOption]::AllDirectories) | `  
 ? { Set-Content -Path "<TargetFolderPath>\$([System.IO.Path]::GetFileNameWithoutExtension($_)).strm" -value $_ }