PowerShell i pliki wsadowe z danymi wejściowymi użytkownika


0

OK najpierw dzięki nex84 za udzielenie odpowiedzi na moje ostatnie pytanie i na wszystkie te, które dały wkład, również na ten link https://superuser.com/a/1051727/569550 ...

Mam teraz nowe pytanie, ale wiąże się ono z tym samym kodem, co ten w linku.

Stworzyłem skrypt, który usunie tekst z nazwy pliku i zastąpi go nowym tekstem lub spacją.

Zostało to stwierdzone w ostatnim pytaniu po linku, który podałem. Dodałem dane wejściowe użytkownika, aby użytkownik mógł wpisać, co tekst ma zostać usunięty i co chce dodać.

Dostaję poprawną część usuwania, ale mam problem z dodaniem nowego tekstu do nazwy pliku. Jakieś sugestie...

Poniższy kod działa dla usuniętego, ale gdy zmiana nazwy pojawia się w skrypcie, dodaje „$ Zmień nazwę” do nazwy pliku zamiast tego, co wprowadza użytkownik.

Przykład: jeśli użytkownik usunął „-Layout1”, ale dodaje „-Model” do nazwy pliku, otrzymujemy:

BLABLA-Layout1.pdf ==>  BLABLA$Replace.pdf

Kod:

CD C:\TempPDF 
$Filter = Read-Host -Prompt 'Input Text To Be Removed' 
$Rename = Read-Host -Prompt 'Input Text To Be Added' 
Write-Host "You input server '$Filter' and '$Rename'" 
Get-ChildItem -Filter "*$Filter*" -Recurse | Rename-Item -NewName {$_.name -replace "$Filter",'$Rename' }

Odpowiedzi:


1

Pojedyncze cudzysłowy w Powershell ograniczają tylko wartości ciągu. W takim przypadku należy użyć cudzysłowów podczas przekazywania zmiennej $ Zmień nazwę na nazwę pliku.

Get-ChildItem -Filter "*$Filter*" -Recurse | Rename-Item -NewName {$_.name -replace "$Filter","$Rename" }

Idealny. Dzięki za szybką odpowiedź. To działa teraz doskonale. Wszystko, co muszę teraz zrobić, to zawinąć go w exe i mogę go rozesłać do moich współpracowników. Jesteście niesamowici! Dzięki jeszcze raz.
Christopher

Ten kod pozwala mi odejść od pobierania wszystkich narzędzi do zmiany nazw. Dzięki jeszcze raz.
Christopher
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.