Entfernen Sie ein Zeichen aus den Dateinamen in jedem Ordner in einem bestimmten Ordner

3190
Rich Lewis

Mit einem Skript konnte ich versehentlich alles in einem Benutzerordner auf dem Server umbenennen - so dass jede Datei in jedem Ordner (und in Ordnern in den Ordnern) umbenannt wurde, um am Ende ein "$" zu erhalten. Alles, was ich zu tun versuchte, war, den Basisordner jedes Benutzers in Ordnernamen $ umzubenennen, damit er bei der Suche nach freigegebenen Ordnern nicht angezeigt wird.

Um es kurz zu machen: Ich habe herausgefunden, wie man das "$" aus jeder Datei in einem Ordner entfernt, aber es gilt nicht für alle untergeordneten Ordner:

get-childitem * | foreach { rename-item $_ $_.Name.Replace("$","") } 

Kann jemand dies ändern, um die $ -Symbole am Ende jeder Datei in jedem Ordner unter einem Ordner zu entfernen?

Vielen Dank!

3
* Ich habe versucht, den Home-Ordner jedes Benutzers in Ordnernamen $ umzubenennen, um ausgeblendet zu werden * ... Google ** Access-based Enumeration ** und verwende statt dessen! Twisty Impersonator vor 7 Jahren 0

1 Antwort auf die Frage

2
LotPings

Versuchen:

Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") } 
  • -Filter ist viel schneller als ein wo / foreach.
  • -Recurse iteriert durch Unterordner
  • Rename-Item akzeptiert Pipe-Eingaben.
Ihre [Antwort] (http://superuser.com/help/how-to-answer) könnte von mehr Details profitieren. Bearbeiten Sie es, um zu erklären, was dieser Befehl bewirkt / wie er funktioniert. Twisty Impersonator vor 7 Jahren 0