我刚刚尝试从文件名列表中删除第一个字符,但是没有用:
for %f in (_Telerik.Windows.*.dll) do set "filename=%f" && ren "%f" "%filename:~1%"
结果:
C:\Directory\set "filename=_Telerik.Windows.Themes.Windows8Touch.dll" && ren "_Telerik.Windows.Themes.Windows8Touch.dll" "Telerik.Windows.Zip.dll"
A duplicate file name exists, or the file cannot be found.
C:\Directory\set "filename=_Telerik.Windows.Zip.dll" && ren "_Telerik.Windows.Zip.dll" "Telerik.Windows.Zip.dll"
A duplicate file name exists, or the file cannot be found.
供您参考,我已经使用过了setlocal enabledelayedexpansion
。
我如何从这些文件名中获取第一个下划线?
enabledelayedexpansion
不会改变%variables%
工作方式——它引入了一个全新的语法,!variable!
作为单独的扩展步骤。因此,如果您想要 Cmd 单行命令,那么使用
!filename:~1!
。请注意,延迟
!variables!
有时会扩展得太晚;特别是,如果常规的扩展值中%variable%
恰好有任何内容,那么它也将通过延迟扩展来处理。!
call
如果将其放入 .bat 或 .cmd 脚本中,那么使用子程序可能会更可靠:或者使用 PowerShell: