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

[文件操作] [已解决]如何处理unzip参数内的带空格的路径?


用unzip将zip文件解压到指定文件夹
  1. @echo off
  2. unzip "bak.zip" -d e:\as\
  3. pause
复制代码
指定路径不能加引号如:"e:\as\"加了会出错
那如何处理带空格的路径呢?

[ 本帖最后由 zjw767676 于 2009-12-13 23:12 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2
有一种爱叫放弃

把最后那个\删掉
C:\Test>unzip a.zip -d "C:\test\Bat Home"
Archive:  a.zip
extracting: C:/test/Bat Home/a.txt
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2楼 的帖子

原来是这样,感谢Batcher!!!!!!
我发现这样也可以:
  1. @echo off
  2. unzip "bak.zip" -d "e:\a s\
  3. pause
复制代码
难道这里的"和\也能组成一对吗?
有一种爱叫放弃

TOP

命令行的解析问题,引号"并不是命令行实际参数的组成部分,只是为了对引号对中的特殊字符进行转义(将起分隔符作用的空格变成普通意义上的空格)。
比如上面的命令只有一个参数,行首的引号将后面的空格都转义了
"C:\Program Files\Internet Explorer\IEXPLORE.EXE
由于MS瘟到死CMD程序的按行处理机制,且引号不能转义回车符(行结束符),一行输入结束就是命令行结束,因此可以不要配对的另一个引号,命令行中原有的最后一个引号后面的内容自动成为一个参数。
Linux的shell就完善多了。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

回复 4楼 的帖子

加一个引号明白了!
那请问版主为什么加了引号对反而出错呢?就多了个\
"e:\a s"   正确
"e:\a s\   正确
"e:\a s\"  错误
"e:\as\"  错误

[ 本帖最后由 zjw767676 于 2009-12-14 13:23 编辑 ]
有一种爱叫放弃

TOP

能否给出出错提示?
可能是unzip程序将\当作了转义字符,即它认为的路径是e:\a s",后面多了个引号。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

回复 6楼 的帖子

版主真高人啊!
  1. @echo off
  2. %~dp0\sanfang\unzip -o %~dp0\"OneKey_6.3_XiaZaiBa.zip" -d "d:\Program Files\one\"
  3. pause
复制代码
[attach]2107[/attach]

[ 本帖最后由 zjw767676 于 2009-12-14 19:49 编辑 ]
有一种爱叫放弃

TOP

返回列表