[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已结】关于用winrar压缩文件的问题

  1. @echo off & setlocal EnableDelayedExpansion
  2. for %%a in (*.txt) do (
  3. set t = %%a
  4. winrar a -m0 !t:~0,-4! "%%a"
  5. )
  6. pause
复制代码
比如我一个文件夹下面有1.txt,2.txt,3.txt这几个文件,我想用winrar分别压缩成1.rar 2.rar 3.rar,上面的代码是我自己写的,结果执行以后的结果是所有的文件都被压缩到了 ~0,-4.rar的文件里面。
难道是因为winrar不支持参数吗?
我看了winrar自带的帮助文档,里面似乎没有把 每个文件单独放到压缩文件中 的这个功能,但是在winrar的图形界面里面是有这个功能的。
请大家看看这个问题应该怎么解决

[ 本帖最后由 zcy85611 于 2009-1-12 16:24 编辑 ]

原帖由 zjw767676 于 2009-1-12 22:22 发表

难道%str%不是变量?或者说变量名包含空格?那字符串是 bathome而不是bathome?


我是这样理解的
set str = 如果str后面加了空格,那么相当于你的变量的名字应该是str(空格),就是说把空格也算到了变量名里。
同理等号后面= bathhome,就是说(空格)bathome才是你赋给str的值。所以两边都不能加空格,如果加了意思就变了。

TOP

原帖由 Batcher 于 2009-1-12 16:59 发表
@echo off
set str = bathome
echo %str %
pause
echo %str%
pause注意观察空格

难道%str%不是变量?或者说变量名包含空格?那字符串是 bathome而不是bathome?

TOP

原帖由 Batcher 于 2009-1-12 16:59 发表
@echo off
set str = bathome
echo %str %
pause
echo %str%
pause注意观察空格


明白了,加空格本来是为了看起来舒服点,没想到导致了这样的结果。感谢版主的帮助!

TOP

回复 5楼 的帖子

  1. @echo off
  2. set str = bathome
  3. echo %str %
  4. pause
  5. echo %str%
  6. pause
复制代码
注意观察空格
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-1-12 16:29 发表
把set命令中等号两边的空格删除试试

。。。成功了,请教一下为什么把等号两边的空格删除就可以了??以前用set命令的时候等号两边加空格也没有出现过问题啊~

[ 本帖最后由 zcy85611 于 2009-1-12 16:41 编辑 ]

TOP

把set命令中等号两边的空格删除试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

...不是这个意思了,习惯性表达~~~不好意思,改成请大家看看

TOP

请版主看看这个问题应该怎么解决

除了版主,其他人不允许回答这个问题?
观望中...
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表