标题: [文本处理] 【已解决】BAT批处理命令for替换字符串中的字符出现问题? [打印本页]
作者: wangxiaodong 时间: 2014-4-4 05:36 标题: 【已解决】BAT批处理命令for替换字符串中的字符出现问题?
本帖最后由 wangxiaodong 于 2014-4-4 16:52 编辑
- @echo off
- for /f "delims=" %%i in ('dir /a–d/b /s ') do (set "str=%%~ni"
- setlocal enabledelayedexpansion
- ren "%%i" "!str:0=!%%~xi"
- endlocal)
复制代码
出现以下问题:
1.本意是删除所有0,但好像是0被替换为空格。空格是如何出来的?
2.如何避免对批处理文件本身操作。
作者: DAIC 时间: 2014-4-4 10:03
- @echo off
- for /f "delims=" %%i in ('dir /b /s /a-d') do (
- if "%%i" neq "%~f0" (
- set "str=%%~ni"
- setlocal enabledelayedexpansion
- echo ren "%%i" "!str:0=!%%~xi"
- endlocal
- )
- )
复制代码
作者: DAIC 时间: 2014-4-4 10:05
注意,你的代码里面 /a-d 中间那个减号写错了。
作者: wangxiaodong 时间: 2014-4-4 12:20
多谢!细看了下,0被替换成空格的原因是set str=%%~ni后面有空格,但本身没加双引号2# DAIC
作者: wangxiaodong 时间: 2014-4-4 12:26
再麻烦下大哥。if语句不是可以用if string1==string2吗?为什么不用if "%%i"=="%0",而是用"%%i" equ "%~f0"?2# DAIC
作者: DAIC 时间: 2014-4-4 12:31
回复 5# wangxiaodong
个人爱好
作者: wangxiaodong 时间: 2014-4-4 12:37
哦,两种表达方式一样。谢谢6# DAIC
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |