我是PowerShell的新手,我必须递归执行以下语句:
Get-ChildItem | ForEach-Object {Rename-Item $_ -NewName ("new_filename{0}.smali" -f $nr++)}
换句话说,我必须使用与当前文件不同的任何其他名称重命名子目录中的所有.smali
文件(保留.smali
扩展名)。
答案 0 :(得分:0)
dir
是Get-ChildItem
的别名,别名为-Recursive
。
答案 1 :(得分:0)
$nr = 0; Get-ChildItem -Recurse -Filter "*.smali" | Rename-Item -NewName "new_filename$($nr++).smali"
注意事项:
DIR是Get-ChildItem的别名。 Get-ChildItem更像Powershell-y
您的命令仅查看顶级目录,因此我添加了-recurse
您的命令将重命名所有文件,而不仅仅是“ * .smali”,因此我添加了过滤器。
答案 2 :(得分:0)
Get-ChildItem -Path FolderPath -Filter * .smali -Recurse | ForEach-Object {$ _ |重命名项-NewName($ .BaseName + StringToAdd + $ .Extension)-WhatIf}
按原样复制上面的行...替换FolderPath和StringToAdd的值,然后尝试一下。如果一切正常,请通过删除-Whatif开关来执行它。