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

[文件操作] 批处理如何解压缩含有空格的文件?

我想把.gz格式的文件全部解压缩成.txt格式的文件,但由于.gz文件名中含有空格,使得含有空格的文件名解压缩失败。应该如何解决呢?
(代码解释:先把所有.gz的文件名列表放到list.txt中,在d:\test1\allfile中找到列表中有的文件,解压缩到d:\test1\tmp中,以.txt格式保存)
  1. @echo unzip .gz files
  2. dir /b d:\test1\allfile\*.gz > d:\test1\tmp\list.txt
  3. for /f "%%a" in (d:\test1\tmp\list.txt) do (
  4. gzip -d -k < "d:\test1\allfile\%%a" > d:\test1\tmp\%%a.txt
  5. )
复制代码

加引号.........

TOP

回复 1楼 的帖子

改成这样试试:
  1. @echo unzip .gz files
  2. dir /b d:\test1\allfile\*.gz > d:\test1\tmp\list.txt
  3. for /f "delims=" %%a in (d:\test1\tmp\list.txt) do (
  4. gzip -d -k < "d:\test1\allfile\%%a" > "d:\test1\tmp\%%a.txt"
  5. )
复制代码

[ 本帖最后由 keen 于 2009-8-27 12:33 编辑 ]
(*^_^*)

TOP

谢谢楼上,可以了,不过接下来把所有.txt文件写入同一个.txt文件中又出错了,照着楼上的方法改了几次都不能用,麻烦再帮我看一下
  1. for /r d:\test1\tmp\ "d:\test1\tmp\%%i" in (*.txt) do (
  2. type "d:\test1\tmp\%%i" >> d:\test1\merge\origin.txt
  3. Rem @echo merging with %%i
复制代码

TOP

回复 4楼 的帖子

这样试试:
  1. for /r d:\test1\tmp\ %%i in (*.txt) do (
  2.       type "%%i" >> d:\test1\merge\origin.txt
  3. )
复制代码
(*^_^*)

TOP

这样可以了,为什么多了一个路径就不行了呢?

TOP

回复 6楼 的帖子

for中的变量%%i前不用加路径。
要想弄清楚原因,可以学习参考:
for语句从入门到精通http://bbs.bathome.net/thread-2189-1-1.html
(*^_^*)

TOP

返回列表