在这个例子中, 我们有 6 下面的日期和下面的文件名的文件:
模式LastWriteTime长度名字 ---- ------------- ------ ---- -一个 - -- 10/06/2018 12:40 0 1 = 9.8.16 银行对帐单298.67.pdf -一个 - -- 10/06/2018 12:40 0 2 = 9.9.16 银行对帐单134.74.pdf -一个 - -- 10/06/2018 12:41 0 3 = 9.10.16 银行对帐单123.43.pdf -一个 - -- 10/06/2018 12:41 0 4 = 9.11.16 银行对帐单134.54.pdf -一个 - -- 10/06/2018 12:41 0 5 = 9.12.16 银行对帐单157.98.pdf -一个 - -- 10/06/2018 12:41 0 6 = 9.1.17 银行对帐单123.45.pdf
这里, 文件名中包含一个串行 # 初, 接着=, 其次是“银行对账单’ 其次是对账单余额结束.
这些文件其实都是信用卡帐单和单词“银行’ 需要由词“信用卡”来代替,. 文件名的其余全部应保持不变.
为了实现这一目标, 我们将使用 视窗 电源外壳 与正则表达式.
要列出所有的银行对账单, 我们使用 ls
命令, 然后通过管道将输出
LS | ren -newname {$_.name -replace(“(.+)银行(.+)“,'$ 1Credit卡$ 2')}
重命名命令管道后用于重命名文件. $_
是,管之前保持输出对象, 我们正在使用的name属性 $_
目的. -replace
用在字符串中 电源外壳, 它取代一个字符串用新字符串. -replace
是需要一个功能 2 参数. 第1个参数是我们要替换的旧字符串,第二个参数是新字符串.
捕获正则表达式组允许我们保持部分字符串. 在正则表达式, 任何东西放在括号被捕获后使用. 例如:. (.+)Bank(.+)
之前和人物“银行”后,捕捉什么. 我们可以利用这些捕获部分, 通过使用 $
和许多. 首届括号捕捉到 $1
和第二括号捕捉到 $2
等等…
在第一个参数, 我们指定我们要替换的旧字符串, 而在同一时间,我们捕捉到我们想保持字符串的部分 (捕获). 在第二个参数, 新的字符串使用,我们希望保持捕获的部分, 以及新的字符串本身如. '$1Credit Card$2'
.
结果:
模式LastWrite时间长度名字 ---- --------- ---- ------ ---- -一个 - -- 10/06/2018 12:40 0 1 = 9.8.16 信用卡账单298.67.pdf -一个 - -- 10/06/2018 12:40 0 2 = 9.9.16 信用卡账单134.74.pdf -一个 - -- 10/06/2018 12:41 0 3 = 9.10.16 信用卡账单123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 信用卡账单134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 信用卡账单157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 信用卡账单123.45.pdf