
CODE: [Copy to clipboard]然后最终用到的命令行是:dir /b | sed -n "s/^/ren \"/g;s/$/\"/gp;s/ren \"./\"/gp" | sed -f ren.sed进一步改善,为了防止文件基本名只有一个字符的文件被改名,进一步修改ren.sed如下::join
/ren/{N
s/\"\n/\" /
}
CODE: [Copy to clipboard]DOS下的命令行又变为:dir /b | sed -n "s/^/ren \"/g;s/$/\"/gp;s/ren \"./\"/gp" | sed -n -f ren.sed:join
# 下面一行验证文件基本名是否只有一个字符,将不符合条件的剔出去
# 但这里我却找不到用什么字符在\(?\)中表示任意一个字符的元字符,“.”在这里是无效的
# 所以只好用一个笨办法用[a-zzA-Z0-9_%!@#$-]来表示,但&字符却不能用
/ren \"\([a-zA-Z0-9_%!@#$-]\)\{2,\}[\.\"]/{
N
s/\"\n/\"/
p
}
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |