我做了研究,但我无法弄清楚,对不起! 谷歌只能帮我添加字符,但不能删除字符…
说下目录E:Movies2011
有几个文件夹,例如
[0603] Movie_1 [0708] Movie_2 [0811] Movie_3
等等..
命令提示符在重新启动后更
c#:将用于Windows命令提示符的unix shell使用的string转换
使用keytool安装安全证书
在使用Windows命令提示符时获取R的输出和完整命令历史logging
Movie_1 Movie_2 Movie_3
等等
我正在使用Windows 8。
更改java符号链接
我无法打开manage.py
在Windows命令解释器的历史缓冲区的韵或理由?
RENAMER.CMD
@echo off setlocal enableextensions enabledelayedexpansion for %%i in (*) do (set name=%%i && ren "!name!" "!name:~7!") endlocal
说明:
setlocal / endlocal的东西只是确保脚本将工作,不管你的默认命令行设置是什么。 如果确保默认情况下启用了命令扩展和延迟扩展,或者使用cmd / e:on / v:on启动命令提示符,则这些行是可选的。
for语句是事物的核心。 它使用(*)选择目录中的每个文件。 如果您只想更改具有特定扩展名的文件,则可以使用不同的模式,如(* .avi) 。 那么!名字:〜7! 从前面七个字符。 设置/? 列出了你可以执行的其他一些操作。 大多数示例使用%而不是! 但是所有的字符串操作都可以同时使用。
更新回答评论
您可以在!中执行%替换! 代换。
@echo off setlocal enableextensions enabledelayedexpansion set numtrim=7 for %%i in (*) do (set name=%%i && ren "!name!" "!name:~%numtrim%!") endlocal
您可以使用增强型变量替换功能来执行此操作( SET /?获取信息):
@echo off setlocal for /d %%i in (*) do call :rename %%i goto :eof :rename set CURDIR=%1 echo ren "%CURDIR%" "%CURDIR:~7%"
在%CURDIR:~7% ,这意味着“ %CURDIR%的值,但跳过前7个字符”的魔术发生。
上面的批处理文件没有重命名任何东西(它只是打印重命名命令),所以你可以先做一个干运行,然后删除最后的echo以完成真正的工作。
既然你使用的是Win8,你可以使用PowerShell来实现这一点。 这是我曾经转过的
blah11-1 blah12-1 blah13-1
至
blah11 blah12 blah13
C: testing> dir -Directory | foreach {if($ .Name.Length -gt 6){$ fileName = $ .Name.SubString(0,6)} else {$ fileName = $ .Name}; rename-item -path $ .fullname -newname $ fileName; }
现在,这就是我在powershell命令行上运行的内容,但是可以将其移动到脚本中以使其更加可重用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。