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

[文件操作] 批处理命令ren修改文件名为何出错?

[复制链接]
发表于 2014-6-28 15:50:50 | 显示全部楼层 |阅读模式
  1. @echo off
  2. for /f "tokens=*" %%i in ('dir /b /ad') do (
  3. ren "%%i" "dfdfdf"
  4. )
复制代码
功能是把所在目录的所有文件夹,都改名 成dfdfdf
就不知道为什么会这样。。。

新^n 手,对批处理还是刚接触
发表于 2014-6-28 15:56:54 | 显示全部楼层
我也是新手
一个文件夹里面不能出现两个名字相同的文件,文件夹,我觉得"dfdfdf"这个要写成变量比如"dfdfdf%time%"
 楼主| 发表于 2014-6-28 16:51:19 | 显示全部楼层
对啊,竟然没想到,我改改,这个论坛真好,不然有问题都不知道问谁说去
 楼主| 发表于 2014-6-28 16:55:39 | 显示全部楼层
怎么这样
发表于 2014-6-28 17:31:53 | 显示全部楼层
本帖最后由 CrLf 于 2014-6-28 23:35 编辑

回复 4# 小怪才


    文件名不能含这些字符: \ / : * ? " < > |,而 %time% 和 %date% 中有 / 和 :,所以未处理不能直接用作文件名
    而且还有个问题,这么短的时间内对 time 两次取值不是很容易重复吗?
可以变通下用递增序号:
  1. @echo off
  2. for /f "tokens=*" %%a in ('dir /b /ad') do (
  3. set "oldName=%%i"
  4. set /a n+=1
  5. setlocal enabledelayedexpansion
  6. ren "!oldName!" "dfdfdf_!n!%%~xa"
  7. endlocal
  8. )
复制代码
其实可以不用脚本,这里键鼠操作反而比敲代码更快捷,分享一个技巧:
  1. 1、视窗中按类型排序,以便把文件夹集中到一起
  2. 2、鼠标拖选所有要更名的文件夹
  3. 3、对第一个文件夹按 F2 或在右键菜单里选重命名
  4. 4、输入新文件夹名,回车搞定
复制代码
 楼主| 发表于 2014-6-28 22:08:43 | 显示全部楼层
回复 5# CrLf

ren "!oldName!" "dfdfdf_!n!%%~xa"
大侠,这一句 后面的 %%~xa 怎么看???


我百度了下,看到了个类似的,
将多个文件夹依次改名 成 B01、B02、B03...
代码如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%i in ('dir /b /ad') do (
set /a a+=1
set b=00!a!
ren  "%%i"   "B!b:~-2!"
)
同样, 最后一行   ren  "%%i"   "B!b:~-2!"看不懂。。。 (感叹号!我可以理解,是那个变量延迟的原因)
发表于 2014-6-28 22:45:03 | 显示全部楼层
%%~xa 是对 %%a 的扩展,翻到 for /? 第五页,脚本里的 %%a 相当于命令行下一个 %a,知道这个一看就懂了...
!b:~-2! 是变量偏移的用法,翻到 set /? 第三、四页,有详细的例子
发表于 2014-6-28 23:20:04 | 显示全部楼层
回复 6# 小怪才


批处理命令set截取字符详解
http://bbs.bathome.net/thread-996-1-1.html

批处理命令set变量字符截取点点通
http://bbs.bathome.net/thread-40-1-1.html

批处理命令set截取字符练习工具
http://bbs.bathome.net/thread-1149-1-1.html
 楼主| 发表于 2014-6-28 23:24:14 | 显示全部楼层
回复 7# CrLf


    哦,还有就是你前面都没定义%%a,怎么就直接拿来用了?
发表于 2014-6-28 23:36:02 | 显示全部楼层
回复 9# 小怪才


    笔误,已修改~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 20:35 , Processed in 0.019894 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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