将简单的PowerShell命令添加到批处理文件

问题描述:

我想添加几个简单的PowerShell命令到批处理文件。我的首选是保持批处理文件独立与调用外部.ps1文件。将简单的PowerShell命令添加到批处理文件

任务:

移除在特定文件夹中的文件名的结构&炭。

以下PowerShell命令在命令行工作:

cd c:\Media\Downloads 
Get-ChildItem -Filter '*&*' -Recurse | Rename-Item -NewName {$_.name -replace '&','testing' }" 

这里就是我试图添加到我的批处理文件,都没有成功:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "& cd c:\Media\Downloads" 
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "& Get-ChildItem -Filter '*&*' -Recurse | Rename-Item -NewName {$_.name -replace '&','testing' }" 

任何人都可以提供一些建议吗?

powershell -c "Get-ChildItem 'c:\Media\Downloads' -Filter '*&*' -Recurse | Rename-Item -NewName {$_.name -replace '&','testing' }" 
  • 指定路径Get-ChildItem
  • 不需要指定的完整路径的PowerShell
+0

谢谢,@wOxxOm。试过这一行:powershell.exe -Command -c“Get-ChildItem'c:\ Media \ Downloads'-Filter'* AA *'-Recurse | Rename-Item -NewName {$ _。name -replace'AA','测试'}“,但没有看到替换。权限问题? –

+0

@MarkPelletier是否“Get-ChildItem'c:\ Media \ Downloads'-Filter'AA'-Recurse'返回任何内容?您的过滤器没有通配符 – Matt

+0

在命令行中,是的,我看到了结果。 (在我的过滤器上修正了通配符) –