我想編寫一個簡單的Powershell腳本,它將2個正則表達式作爲參數,並重命名文件夾中的文件。這裏是myscript.ps1:如何使用Powershell參數作爲正則表達式來重命名文件?
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]
我打電話從myscript.cmd
@echo off
powershell -Command %~dpn0.ps1 %1 %2
這個劇本,當我從CMD執行myscript foo bar
,我得到的輸出
foo
bar
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 26.11.2016 15:24 16 foo
bar
但我的測試我創建的文件foo
未被重命名。
我的問題:
- 我是否正確調用PowerShell腳本,並傳遞參數以正確的方式?我想我需要在%1,%2參數周圍引用一些引號。
- 爲什麼文件沒有被重命名,儘管
-replace
似乎工作?
故障診斷建議:'echo $ PWD' –