Powershell - path ungültig - Anfänger
Hallo Community
es geht um folgendes,
ich versuche gerade in einem Ordner A auf dem Desktop,
wo jeweils eine Text und eine PDF Datei gleich benannt ist per Powershell umzubenennen,
dabei zeigt er mir die ganze Zeit das der Path ungültig sei.
Ich hoffe ihr könnt mir helfen und sagen, was ich bei der ganze Sache hier übersehe.
Wenn ich mit dem Script jemanden augenscheinlich verletzte, sorry,
ist mein erster Powershell-Script und mein erster Beitrag.
es geht um folgendes,
ich versuche gerade in einem Ordner A auf dem Desktop,
wo jeweils eine Text und eine PDF Datei gleich benannt ist per Powershell umzubenennen,
dabei zeigt er mir die ganze Zeit das der Path ungültig sei.
Ich hoffe ihr könnt mir helfen und sagen, was ich bei der ganze Sache hier übersehe.
$txt = "C:\Users\xx\Desktop\A\*.txt"
$pdf = "C:\Users\xx\Desktop\A\*.pdf"
if ( $txt.name -eq $pdf.name ){
$objects = $txt.split(",") | ForEach-Object{ $_.trimstart("`"").trimend("`"")}
For($i = 0; $i -lt $objects.count; $i++){
if($objects[$i] -match "AB")
{
$filename = $objects[$i + 1]
}
}
Rename-Item -Path $pdf -NewName "$filename.pdf"
}
else{
Write-Host "Keine Gleichnamigen Files gefunden"
}
Wenn ich mit dem Script jemanden augenscheinlich verletzte, sorry,
ist mein erster Powershell-Script und mein erster Beitrag.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 659876
Url: https://administrator.de/contentid/659876
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
$txt = (get-childitem -path "C:\Users\zzz\Desktop\A" -File | Where-Object { $_.Name -match '.txt'}).Name
$pdf = (get-childitem -path "C:\Users\zzz\Desktop\A" -File | Where-Object { $_.Name -match '.pdf'}).Name
$found = $false
foreach ($txtdatei in $txt) {
$comparedat = ($txtdatei.split("."))
foreach ($pdfdatei in $pdf) {
if($comparedat -eq ($pdfdatei.split("."))) {
write $pdfdatei
$found =$true
### Rename-Item -Path "C:\Users\zzz\Desktop\A\"$pdf -NewName "$filename.pdf"
}
}
}
if (!$found) {Write-Host "Kein gleichnamigenDateien gefunden!"}
$pdf = (get-childitem -path "C:\Users\zzz\Desktop\A" -File | Where-Object { $_.Name -match '.pdf'}).Name
$found = $false
foreach ($txtdatei in $txt) {
$comparedat = ($txtdatei.split("."))
foreach ($pdfdatei in $pdf) {
if($comparedat -eq ($pdfdatei.split("."))) {
write $pdfdatei
$found =$true
### Rename-Item -Path "C:\Users\zzz\Desktop\A\"$pdf -NewName "$filename.pdf"
}
}
}
if (!$found) {Write-Host "Kein gleichnamigenDateien gefunden!"}
Würds gleich so machen:
$quelle = 'C:\Users\zzz\Desktop\A'
ls "$quelle\*" -File -Include *.pdf,*.txt | group Basename | ?{$_.Count -gt 1} | %{
$newname = [regex]::match($_.Name, 'AB.*?,([^,]+)').Groups[1].Value.trim('"')
if ($newname){
$_.Group | ?{$_.Extension -eq '.pdf'} | rename-item -NewName $newname -verbose
}
}
Bitte gerne:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Tipp: Anstatt einer Property kannst du dort auch einen Scriptblock einsetzen und so nach beliebigen Kriterien Objekte gruppieren.
Und für die Zukunft vielleicht hier auch mal für deine Codeschnippsel beherzigen
Formatierungen in den Beiträgen
Sonst bekommt man ja die Kretze ohne Einrückungen, Zerstörung von Sonderzeichen wie # etc. pp.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Tipp: Anstatt einer Property kannst du dort auch einen Scriptblock einsetzen und so nach beliebigen Kriterien Objekte gruppieren.
Und für die Zukunft vielleicht hier auch mal für deine Codeschnippsel beherzigen
Formatierungen in den Beiträgen
Sonst bekommt man ja die Kretze ohne Einrückungen, Zerstörung von Sonderzeichen wie # etc. pp.