标题: [文件操作] 批处理如何解压缩含有空格的文件? [打印本页]
作者: snowsilent 时间: 2009-8-27 10:59 标题: 批处理如何解压缩含有空格的文件?
我想把.gz格式的文件全部解压缩成.txt格式的文件,但由于.gz文件名中含有空格,使得含有空格的文件名解压缩失败。应该如何解决呢?
(代码解释:先把所有.gz的文件名列表放到list.txt中,在d:\test1\allfile中找到列表中有的文件,解压缩到d:\test1\tmp中,以.txt格式保存)
- @echo unzip .gz files
- dir /b d:\test1\allfile\*.gz > d:\test1\tmp\list.txt
- for /f "%%a" in (d:\test1\tmp\list.txt) do (
- gzip -d -k < "d:\test1\allfile\%%a" > d:\test1\tmp\%%a.txt
- )
复制代码
作者: canyuexiaolang 时间: 2009-8-27 12:13
加引号.........
作者: keen 时间: 2009-8-27 12:30 标题: 回复 1楼 的帖子
改成这样试试:- @echo unzip .gz files
- dir /b d:\test1\allfile\*.gz > d:\test1\tmp\list.txt
- for /f "delims=" %%a in (d:\test1\tmp\list.txt) do (
- gzip -d -k < "d:\test1\allfile\%%a" > "d:\test1\tmp\%%a.txt"
- )
复制代码
[ 本帖最后由 keen 于 2009-8-27 12:33 编辑 ]
作者: snowsilent 时间: 2009-8-27 14:09
谢谢楼上,可以了,不过接下来把所有.txt文件写入同一个.txt文件中又出错了,照着楼上的方法改了几次都不能用,麻烦再帮我看一下- for /r d:\test1\tmp\ "d:\test1\tmp\%%i" in (*.txt) do (
- type "d:\test1\tmp\%%i" >> d:\test1\merge\origin.txt
- Rem @echo merging with %%i
复制代码
作者: keen 时间: 2009-8-27 17:31 标题: 回复 4楼 的帖子
这样试试:- for /r d:\test1\tmp\ %%i in (*.txt) do (
- type "%%i" >> d:\test1\merge\origin.txt
- )
复制代码
作者: snowsilent 时间: 2009-8-28 13:35
这样可以了,为什么多了一个路径就不行了呢?
作者: keen 时间: 2009-8-28 13:43 标题: 回复 6楼 的帖子
for中的变量%%i前不用加路径。
要想弄清楚原因,可以学习参考:
for语句从入门到精通http://bbs.bathome.net/thread-2189-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |