标题: [其他] 修改压缩文件内容的批处理错误在哪里? [打印本页]
作者: mengpm 时间: 2011-7-29 10:32 标题: 修改压缩文件内容的批处理错误在哪里?
下面的代码运行后会出错,弹出对话框“没有找到压缩文件”,“文件名、目录名或卷标语法不正确”- @Echo Off&SetLocal EnableDelayedExpansion
- If NOT Exist temp Md temp
- Set "RpStr=原内容1-现在内容1 原内容2-现在内容2 原内容3-现在内容3 原内容4-现在内容4"
- For /F tokens^=2delims^=^" %%A In ('Ftype winrar') Do Set "Mrar=%%A"
- For /F "delims=" %%A IN ('Dir /a-d /b /s *.rar') Do (
- "%Mrar%" x "%~dp0\%%A" "%~dp0\temp"
- Del "%~dp0\%%A"
- For /R temp %%I IN (*.txt) Do (
- (For /F "Usebackq Delims=" %%J IN ("%%I") Do (
- Set "Str=%%J"
- For %%K In ("%RpStr%") Do (
- For /F "tokens=1,2 delims=-" %%L In ("%%K") Do Set "Str=!Str:%%L=%%M!"
- )
- Echo,!Str!
- ))>"%%~dpI\tem"
- Move "%%~dpI\tem" "%%I"
- "%Mrar%" a -ep -dw "%~dp0\%%A" "%%I"
- )
- )
- Rd temp
复制代码
作者: tmplinshi 时间: 2011-7-29 14:56
本帖最后由 tmplinshi 于 2011-7-29 15:00 编辑
@Echo Off&SetLocal EnableDelayedExpansion
If NOT Exist temp Md temp
Set "RpStr=原内容1-现在内容1 原内容2-现在内容2 原内容3-现在内容3 原内容4-现在内容4"
For /F tokens^=2delims^=^" %%A In ('Ftype winrar') Do Set "Mrar=%%A"
For /F "delims=" %%A IN ('Dir /a-d /b /s *.rar') Do (
"%Mrar%" x "%~dp0\%%A" "%~dp0\temp"
Del "%~dp0\%%A"
For /R temp %%I IN (*.txt) Do (
(For /F "Usebackq Delims=" %%J IN ("%%I") Do (
Set "Str=%%J"
For %%K In ("%RpStr%") Do (
For /F "tokens=1,2 delims=-" %%L In ("%%K") Do Set "Str=!Str:%%L=%%M!"
)
Echo,!Str!
))>"%%~dpI\tem"
Move "%%~dpI\tem" "%%I"
"%Mrar%" a -ep -dw "%~dp0\%%A" "%%I"
)
)
Rd temp
%~dp0 是路径,%%A 是完整路径。
"%~dp0\%%A" → "盘符:\路径\盘符:\路径\文件名" → - -|||
作者: mengpm 时间: 2011-7-30 11:32
- @Echo Off&SetLocal EnableDelayedExpansion
- If NOT Exist temp Md temp
- Set "RpStr=原内容1-现在内容1 原内容2-现在内容2 原内容3-现在内容3 原内容4-现在内容4"
- For /F tokens^=2delims^=^" %%A In ('Ftype winrar') Do Set "Mrar=%%A"
- For /F "delims=" %%A IN ('Dir /a-d /b /s *.rar') Do (
- "%Mrar%" x "%%A" "%~dp0\temp"
- Del "%%A"
- For /R temp %%I IN (*.txt) Do (
- (For /F "Usebackq Delims=" %%J IN ("%%I") Do (
- Set "Str=%%J"
- For %%K In ("%RpStr%") Do (
- For /F "tokens=1,2 delims=-" %%L In ("%%K") Do Set "Str=!Str:%%L=%%M!"
- )
- Echo,!Str!
- ))>"%%~dpI\tem"
- Move "%%~dpI\tem" "%%I"
- "%Mrar%" a -ep -dw "%%A" "%%I"
- )
- )
- Rd temp
复制代码
删掉那几处%~dp0了,可以运行了,但是不能替换内容,能帮忙看看是什么原因吗?
作者: cjiabing 时间: 2011-7-30 11:39
谁写的找谁去。不过"%~dp0\%%A" 通常也做“"%~dp0%%A" ”后面不用反斜杠,强制指程序所在目录。
作者: Batcher 时间: 2011-7-30 11:45
回复 3# mengpm
把@Echo Off删掉,多加几行echo和pause,自己先看看哪一步出错了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |