本帖最后由 RunesMoon 于 2020-9-15 04:27 编辑
感谢@zaqmlp 老师,问题完美解决了……完美得出乎预料……
@zaqmlp 老师的认真与负责令我动容,帮助与指点更是远远超过我那点微不足道的心意……
感谢论坛,咱们这边真有大神常驻!
我切实体会到了bat的强大!
请教各位大佬:
比如有一批文件,文件名为“xxx - xxxx - xx - xxxxx.rar”,是否有可能使用for语句提取最后一个“ - ”之后的内容,重命名文件为“xxxxx.rar”?
操作系统为Win10 2004。
小弟在实践过程中遇到两个问题:
1、文件名分段不确定,也就是不确定文件名里有几个“ - ”;
2、参考网上存在的解决方案,类似- setlocal enableDelayedExpansion
- for /f "tokens=1-3 delims=-" %%i in ('dir /b *.*') do (
- ren "%%i-%%j-%%k" %%k
- )
复制代码 的写法,一来原文件名后会多出对应数量的“-”符号,导致找不到源文件;二来ren命令的第二个“%%k”会呈现空值,导致出现重复的空文件名。
同样的,论坛已有的以“_”分割的方案改动后也无法顺利执行:- for /f "delims=" %%i in ('dir /b /a-d *_*_*') do (
- for /f "tokens=1,2,* delims=_" %%a in ("%%i") do (
- ren "%%a_%%b_%%c" "%%b%%~xi"
- )
- )
复制代码 小弟学艺不精,还在努力,请各位大佬多多提携……知识无价,聊表心意:
给出满足要求的代码,任意方式感谢20元;
指点例子中的错误和原理,任意方式感谢20元。
礼轻情义重,一点点心意不足挂齿……
还请各位不吝赐教……
感谢…… |