2 개의 정규 표현식을 인수로 사용하고 폴더의 파일 이름을 바꾸는 간단한 Powershell 스크립트를 작성하고 싶습니다. 여기 myscript.ps1입니다 :Powershell arguments를 정규식으로 사용하여 파일의 이름을 바꾸는 방법?
echo $args[0]
echo $args[1]
Get-ChildItem
Get-ChildItem | Rename-Item -NewName {$_.Name -replace $args[0], $args[1]}
"foo" -replace $args[0], $args[1]
내가 cmd를에서 myscript foo bar
를 실행하면 내가 myscript.cmd 파일
@echo off
powershell -Command %~dpn0.ps1 %1 %2
에서이 스크립트를 호출하고, 내가 출력을 얻을
foo
bar
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 26.11.2016 15:24 16 foo
bar
하지만 내 테스트 내가 만든 파일 foo
의 이름이 변경되지 않았습니다.
내 질문 :
- 내가 제대로 PowerShell 스크립트를 호출하고 올바른 방법으로 인수를 전달합니까? 나는 % 1, % 2 인수에 대해 따옴표를 사용해야한다고 생각합니다.
-replace
이 작동하는 것처럼 보이지만 왜 파일의 이름이 변경되지 않습니까?
문제 해결 조언 : 'echo $ PWD' –