[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理重命名,请教for语句提取字符串重命名文件的操作

本帖最后由 RunesMoon 于 2020-9-15 04:27 编辑

感谢@zaqmlp 老师,问题完美解决了……完美得出乎预料……
@zaqmlp 老师的认真与负责令我动容,帮助与指点更是远远超过我那点微不足道的心意……
感谢论坛,咱们这边真有大神常驻!
我切实体会到了bat的强大!



请教各位大佬:
比如有一批文件,文件名为“xxx - xxxx - xx - xxxxx.rar”,是否有可能使用for语句提取最后一个“ - ”之后的内容,重命名文件为“xxxxx.rar”?
操作系统为Win10 2004。

小弟在实践过程中遇到两个问题:
1、文件名分段不确定,也就是不确定文件名里有几个“ - ”;
2、参考网上存在的解决方案,类似
  1. setlocal enableDelayedExpansion
  2. for /f "tokens=1-3 delims=-" %%i in ('dir /b *.*') do (
  3. ren "%%i-%%j-%%k" %%k
  4. )
复制代码
的写法,一来原文件名后会多出对应数量的“-”符号,导致找不到源文件;二来ren命令的第二个“%%k”会呈现空值,导致出现重复的空文件名。

同样的,论坛已有的以“_”分割的方案改动后也无法顺利执行:
  1. for /f "delims=" %%i in ('dir /b /a-d *_*_*') do (
  2.     for /f "tokens=1,2,* delims=_" %%a in ("%%i") do (
  3.         ren "%%a_%%b_%%c" "%%b%%~xi"
  4.     )
  5. )
复制代码
小弟学艺不精,还在努力,请各位大佬多多提携……知识无价,聊表心意:
给出满足要求的代码,任意方式感谢20元;
指点例子中的错误和原理,任意方式感谢20元。
礼轻情义重,一点点心意不足挂齿……

还请各位不吝赐教……
感谢……
力量本身并不可啪,可啪的是它的主人。

此帖仅作者可见
力量本身并不可啪,可啪的是它的主人。

TOP

此帖仅作者可见
力量本身并不可啪,可啪的是它的主人。

TOP

此帖仅作者可见
力量本身并不可啪,可啪的是它的主人。

TOP

此帖仅作者可见
力量本身并不可啪,可啪的是它的主人。

TOP

此帖仅作者可见
力量本身并不可啪,可啪的是它的主人。

TOP

返回列表