找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24210|回复: 14

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

[复制链接]
发表于 2020-9-14 02:27:35 | 显示全部楼层 |阅读模式
本帖最后由 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元。
礼轻情义重,一点点心意不足挂齿……

还请各位不吝赐教……
感谢……
发表于 2020-9-14 02:55:43 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-14 11:01:39 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2020-9-15 01:02:58 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2020-9-15 01:11:45 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2020-9-15 01:52:06 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-15 02:45:39 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2020-9-15 02:53:46 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-15 14:44:25 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-15 15:21:36 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-15 15:43:26 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2020-9-16 04:57:52 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-16 09:08:08 | 显示全部楼层
此帖仅作者可见
发表于 2020-9-30 14:52:30 | 显示全部楼层
此帖仅作者可见
发表于 2021-6-23 17:32:25 | 显示全部楼层
此帖仅作者可见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 18:43 , Processed in 0.032245 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表