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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6768876160
Url: https://administrator.de/forum/textdatei-automatisch-erstellen-und-fuellen-6768876160.html
Ausgedruckt am: 02.04.2025 um 19:04 Uhr
12 Kommentare
Neuester Kommentar
Hallo,
10 Sekunden mit ChatGPT.
Gruß
# 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ß

Moin
5 Minuten ohne ChatGPT. (Ist das heutzutage sozusagen Bio-Code?
)
$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?

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

Zitat von @6376382705:
Gruß
$suchwort = "Strand"
eine nicht benutzte Variable @3063370895Gruß
Danke, habs geändert.

Erfüllt leider nicht die Anforderungen
Es soll im Ordner Urlaub nach allen MP4 Dateien mit dem Suchwort "Strand" gesucht werden.
Zitat von @3063370895:
Erfüllt leider nicht die Anforderungen
Erfüllt leider nicht die Anforderungen
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

Zitat von @SlainteMhath:
Moin,
oder noch kürzer:
lg,
Slainte
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,

Da ja mit Tag "Batch/Shell" versehen der Vollständigkeit halber noch die Batch Variante für die Opi's ...
Und die Powershell-Kurzform
Cheers briggs
@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "C:\Urlaub\*Strand*.mp4"') do (>"%%~dpna.strm" echo.%%a)
ls "C:\Urlaub\*Strand*.mp4" -file -r | %{sc ($_.Fullname -replace 'mp4$','strm') $_.Fullname -Force}

Zitat von @mayho33:
Hi,
Das wäre prinzipiell ein Einzeiler:
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.
Zitat von @6247018886:
Aufgabe nicht gelesen, setzen 6. :-P.
Zitat von @mayho33:
Hi,
Das wäre prinzipiell ein Einzeiler:
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.
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 $_ }