在Powershell批量重命名文件

    xiaoxiao2021-03-25  155

    以下这个命令将文件夹中后缀为png的文件进行重命名,重命名的方式是给文件加上一个前缀test_,例如1.png,将重命名为test_1.png:

    Get-ChildItem *.png | Rename-Item -NewName { $_.name -Replace '(.+)\.', 'test_$1.' }

    分析:

    Get-ChildItem *.png 是第一个命令,这个命令的输出,将通过管道(管道符|),输出给第二个命令。(管道是进程间通信的一种手段)

    第二个命令 Rename-Item ,进行重命名,它会逐个接受前一个命令里的每一个文件信息,然后进行命名。命名的规则为{ $_.name -Replace '(.+)\.', 'test_$1.' }。这实际上也是一个单独的语句。可以在命令行单独测试:

    1.png” -Replace '(.+)\.', 'test_$1.'

    这里面主要涉及到正则表达式,在replace的第一个参数,需要正则表达式表示,遇到特殊字符,需要用\转义。而第二个参数不是正则表达式,因此不需要这么做。第二个参数中可以用 1 1将替换为(.+)括号中匹配到的字符。

    参考

    [1] Rename-Item @ MSDN [2] Use PowerShell to Replace Text in Strings, author: ScriptingGuy1

    转载请注明原文地址: https://ju.6miu.com/read-4666.html

    最新回复(0)