PowerShell - Ordner auslesen und als Textdatei ausgeben
Hallo zusammen,
ich wollte gerade ein kleines Skript schreiben, das einen Ordner ausliest und den Namen der Dateien in eine Textdatei schreibt. Dabei sollen nur pdf Dateien genommen werden.
Zusätzlich möchte ich noch als erste Zeile eine kurze Info schreiben, wie viele Dateien im Ordner sind, wozu ich aber noch nicht gekommen bin.
Anbei mal das bereits stehende Skript:
Er erstellt mir zwar die Archivordner, aber nicht die Textdatei. Woran liegt das bzw. wo hat sich der Fehler eingeschlichen?
Vielen Dank im Voraus
ich wollte gerade ein kleines Skript schreiben, das einen Ordner ausliest und den Namen der Dateien in eine Textdatei schreibt. Dabei sollen nur pdf Dateien genommen werden.
Zusätzlich möchte ich noch als erste Zeile eine kurze Info schreiben, wie viele Dateien im Ordner sind, wozu ich aber noch nicht gekommen bin.
Anbei mal das bereits stehende Skript:
# Skript zum auslesen des Bescheiddruckordners
# Speichert eine Textdatei vom aktuellen Tag in ein Verzeichnis
$TodayY = Get-Date -Format "yyyy"
$TodayYM = Get-Date -Format "yyyy-MM"
$TodayYMD = Get-Date -Format "yyyy-MM-dd"
[String]$ArchivFolder = "\\vdm-11.sis.net\LUP-DATEN\FD_50_Bank\System_Ablaufverfahren\Druckerstraße\$TodayY\$TodayYM\$TodayYMD" # Archivordner auf "G"
[String]$PrintFolder = "\\vdm-2.sis.net\KONZERN\LUP\50_Bescheiddruck" # Bescheiddruckordner auf "K"
$NumberFiles = Get-ChildItem -File | Measure-Object | %{$_.Count} # TODO
# Prüfen ob Archivordner vorhanden ist, ansonsten erstellen.
If (!(Test-Path $ArchivFolder))
{
mkdir $ArchivFolder
}
# Inhalt des Bescheiddruckordners auslesen und in Textdatei schreiben.
Get-ChildItem -Path $PrintFolder | Select Name, CreationTime | Where { $_.Extension -eq ".pdf" } | Format-Table -AutoSize | `
Set-Content "$ArchivFolder\Druckliste.txt"
Er erstellt mir zwar die Archivordner, aber nicht die Textdatei. Woran liegt das bzw. wo hat sich der Fehler eingeschlichen?
Vielen Dank im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 504679
Url: https://administrator.de/contentid/504679
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
3 Kommentare
Neuester Kommentar
Da ist in meinen Augen einer der Fehler:
"Set-Content "$ArchivFolder\Druckliste.txt"
Mit Set-Content überschreibst du den Inhalt einer existierenden Datei. In deinem Script erstellst du derzeit jedoch die Datei nicht, also weiß er nicht wohin er schreiben soll.
Ganz davon ab: Er weiß gar nicht was er schreiben soll.
"Get-ChildItem -Path $PrintFolder | Select Name, CreationTime | Where { $_.Extension -eq ".pdf" } | Format-Table -AutoSize | `"
Das gibts du einfach nur in der Kommandozeile aus.
Der letzte Abschnitt müsste meiner Meinung nach so aussehen:
Oder noch kürzer (ohne es getestet zu haben, sollte aber auch funktionieren):
"Set-Content "$ArchivFolder\Druckliste.txt"
Mit Set-Content überschreibst du den Inhalt einer existierenden Datei. In deinem Script erstellst du derzeit jedoch die Datei nicht, also weiß er nicht wohin er schreiben soll.
Ganz davon ab: Er weiß gar nicht was er schreiben soll.
"Get-ChildItem -Path $PrintFolder | Select Name, CreationTime | Where { $_.Extension -eq ".pdf" } | Format-Table -AutoSize | `"
Das gibts du einfach nur in der Kommandozeile aus.
Der letzte Abschnitt müsste meiner Meinung nach so aussehen:
# Inhalt des Bescheiddruckordners auslesen und in Textdatei schreiben.
$content = Get-ChildItem -Path $PrintFolder | Select Name, CreationTime | Where { $_.Extension -eq ".pdf" } | Format-Table -AutoSize | `
$content | Out-File $ArchivFolder\Druckliste.txt
Oder noch kürzer (ohne es getestet zu haben, sollte aber auch funktionieren):
# Inhalt des Bescheiddruckordners auslesen und in Textdatei schreiben.
Get-ChildItem -Path $PrintFolder | Select Name, CreationTime | Where { $_.Extension -eq ".pdf" } | Format-Table -AutoSize | ` | Out-File $ArchivFolder\Druckliste.txt
Man kann sich ja echt einen abbrechen ...
Fertsch!
$items = Get-ChildItem -Path $Printfolder -File -Filter *.pdf
"Anzahl an Dateien: $($items.Count)",($items | Select Name, CreationTime | Format-Table -AutoSize ) | out-file "$ArchivFolder\Druckliste.txt"