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

[文件操作] BAT批处理如何重命名文件夹名带感叹号的文件

[复制链接]
发表于 2014-1-26 10:00:00 | 显示全部楼层 |阅读模式
如果一个文件夹名含有一些特殊字符,如!,如何重命名?

当前的目录下有个文件夹12344!111,如何改成123111,使用下面的命令不成功。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /ad /b') do (
  3.    set a=%%a
  4.    set a=!a:44!=!
  5.    ren "%%a" !a!
  6. )
复制代码
发表于 2014-1-26 10:59:04 | 显示全部楼层
本帖最后由 apang 于 2014-1-26 11:25 编辑

如果仅仅是删除叹号,可以这样:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad /b *!*') do (
  3.    set "a=%%a"
  4.    setlocal enabledelayedexpansion
  5.    echo  ren "!a!" "%%a"
  6.    endlocal
  7. )
  8. pause
复制代码
看错了,这样试试
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad /b *!*') do (
  3.     set "name=%%a"
  4.     call set "name=%%name:44!=%%"
  5.     call Ren "%%a" "%%name%%"
  6. )
  7. pause
复制代码
发表于 2014-1-26 15:57:51 | 显示全部楼层
  1. @echo off
  2. for /d %%i in (*!*) do (
  3.     set "a=%%i"
  4.     setlocal enabledelayedexpansion
  5.     for /f "tokens=1,2delims=:" %%a in ("!a!:!a:44!=!") do (
  6.         endlocal&if "%%a" neq "%%b" ren "%%a" "%%b"
  7.     )
  8. )
  9. pause
复制代码
 楼主| 发表于 2014-3-2 19:53:16 | 显示全部楼层
回复 2# apang


    如果是文件夹中其他的一些特殊符号,如(),怎么去掉?
如果当前目录下有一些文件夹,这些文件夹下的一些文件夹有一些特殊符号,如(),dir /ad /b "%%a" 这里会出错,正常的应该怎么写?谢谢!

  1. for /f "delims=" %%a in ('dir /ad /b') do (
  2.    for /f "delims=" %%b in ('dir /ad /b "%%a"') do (
  3.      echo %%b
  4.   )
  5. )
复制代码
发表于 2014-3-3 11:16:25 | 显示全部楼层
回复 4# changedirectory


    我电脑运行就可以啊,估计你之前肯定加了setlocal enabledelayedexpansion,去掉就行了,如目录结构:
c:\12\(123)!!!000111\123000111
运行代码:

  1. @echo off
  2. pushd c:\12
  3. for /f "delims=" %%a in ('dir /ad /b') do (
  4. echo %%a
  5. pause
  6.    for /f "delims=" %%b in ('dir /ad /b "%%a"') do (
  7.      echo %%b
  8.   )
  9. )
复制代码
结果:
(123)!!!000111
请按任意键继续. . .
123000111
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 02:08 , Processed in 0.015376 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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