[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
不会正则,用字符串的.split()方法
中 - A
国 - B-大
日 - C
本 - D-小
  1. dir -dir|ren -newname{
  2. $name=$_.name.split("-",2)
  3. $name[1]+" - "+$name[0]
  4. }
复制代码
  1. $s="? -> Where-Object"
  2. $s.split("->",3)[2]+" -> "+$s.split("->",3)[0]
复制代码

TOP

本帖最后由 for_flr 于 2022-2-15 09:08 编辑

空行问题加个if $_ -ne ""
split()产生空格问题,用[StringSplitOptions]::RemoveEmptyEntries
可以搜一下。

回复 6# 5i365
  1. dir -dir|%{$n=$_.name.split(" -",2,[stringsplitoptions]::removeemptyentries);$n[0]+"-"+$n[1]}
复制代码
  1. dir -dir|%{$n=$_.name.split(" -",4);$n[0]+"-"+$n[3]}
复制代码
这两个结果是一样的,都不会有额外空格,反复更名会出意外是因为更名后原来的代码已经不适用于新的数据规律。
保留空行:
  1. if $_.tirm() -ne ""{xxx}else{$_}
复制代码

TOP

返回列表