我有一堆文件,格式如下
filename-!#.ext
其中 # 是一个递增的数字,用于避免冲突。我想要将文件名中的 ! 删除,以便它读作
filename-#.ext
似乎我可以使用ren命令和通配符来完成这个任务,但是在实践中遇到了困难。我尝试运行以下命令:
ren *!?.ext *?.ext
我认为 * 应该匹配文件名的部分,接着是 !,然后是数字的 ?。然而,生成的文件名如下所示:
filename-!#.ext.ext
我无法确定原因。
文件名可能是动态的,但不会包含任何感叹号。有什么想法吗?
!
,但是在重命名时,cmd忽略了所有的"
并且“检测到”了一个变量覆盖了参数,例如ren "arg!var" "!arg2!"
。所以我最终采用了内联调用版本,在这种情况下我更喜欢它,因为你不需要任何外部标签来跳转(而且代码更少)。 - timlg07^
符号;您可以通过不使用参数%~1
而在for
循环中分配set "FROM=%%~a"
并在子例程中读取变量FROM
来避免这种情况... - aschipfl