Board logo

标题: [文件操作] [已解决]批处理重命名,请教for语句提取字符串重命名文件的操作 [打印本页]

作者: RunesMoon    时间: 2020-9-14 02:27     标题: [已解决]批处理重命名,请教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元。
礼轻情义重,一点点心意不足挂齿……

还请各位不吝赐教……
感谢……
作者: zaqmlp    时间: 2020-9-14 02:55

此帖仅作者可见
作者: went    时间: 2020-9-14 11:01

此帖仅作者可见
作者: RunesMoon    时间: 2020-9-15 01:02

此帖仅作者可见
作者: RunesMoon    时间: 2020-9-15 01:11

此帖仅作者可见
作者: RunesMoon    时间: 2020-9-15 01:52

此帖仅作者可见
作者: zaqmlp    时间: 2020-9-15 02:45

此帖仅作者可见
作者: RunesMoon    时间: 2020-9-15 02:53

此帖仅作者可见
作者: qixiaobin0715    时间: 2020-9-15 14:44

此帖仅作者可见
作者: Batcher    时间: 2020-9-15 15:21

此帖仅作者可见
作者: qixiaobin0715    时间: 2020-9-15 15:43

此帖仅作者可见
作者: RunesMoon    时间: 2020-9-16 04:57

此帖仅作者可见
作者: qixiaobin0715    时间: 2020-9-16 09:08

此帖仅作者可见
作者: qixiaobin0715    时间: 2020-9-30 14:52

此帖仅作者可见
作者: citygun    时间: 2021-6-23 17:32

此帖仅作者可见




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2