我想编写一个简单的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' –