Mat*_*hew 25 powershell rename
我目前有一行批量重命名我目前在的文件夹中的文件.
dir | foreach { move-item -literal $_ $_.name.replace(".mkv.mp4",".mp4") }
Run Code Online (Sandbox Code Playgroud)
此代码适用于我当前所在的目录,但我想要的是从包含11个子文件夹的父文件夹运行脚本.我可以通过单独导航到每个文件夹来完成我的任务,但我宁愿运行一次脚本并完成它.
我尝试了以下方法:
get-childitem -recurse | foreach { move-item -literal $_ $_.name.replace(".mkv.mp4",".mp4") }
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我在正确的方向吗?我根本不熟悉Powershell,但在这种情况下它符合我的需要.
Col*_*350 33
你很亲密:
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(".mkv.mp4",".mp4")}
Run Code Online (Sandbox Code Playgroud)
Jas*_*irk 32
有一个鲜为人知的功能是专为这种情况而设计的.简而言之,您可以执行以下操作:
Get-ChildItem -Recurse -Include *.ps1 | Rename-Item -NewName { $_.Name.replace(".ps1",".ps1.bak") }
Run Code Online (Sandbox Code Playgroud)
这样可以通过传递参数NewName的scriptblock来避免使用ForEach-Object.PowerShell足够聪明,可以为每个被管道对象评估scriptblock,设置$ _就像使用ForEach-Object一样.
| 归档时间: |
|
| 查看次数: |
29944 次 |
| 最近记录: |