标题: [文件操作] 批处理将多个文件内容合并为一个文件,内存不够? [打印本页]
作者: lengkubinghan 时间: 2009-11-9 14:44 标题: 批处理将多个文件内容合并为一个文件,内存不够?
我想做如下操作:将多个.sql文件的内容读入一个目标文件中,当很多文件时自动终止(这是目标文件大概有6M),不知为什么,我的代码如下:- set _CurrPath=.
- set _HuanHang=\n
- for %%i in (a\*.sql;b\*.sql;c\*.sql) do (
- type %%i >> %_CurrPath%\a.log c.sql >> %_CurrPath%\a.log)
复制代码
其中c.sql中只有一个空行,小弟不知道怎样直接向一个文件中写入换行符,就只能每次读入c.sql,效率低下,还希望各位大侠不吝赐教!
主要是第一个问题,小弟十万火急啊~~~
作者: Seter 时间: 2009-11-9 16:06
换行echo.>...就可以了
你的BAT中type %%i >> %_CurrPath%\a.log c.sql >> %_CurrPath%\a.log我看不懂...所以帮不了你啦
作者: dailisishen 时间: 2009-11-9 16:22
直接写入换行为复制代码
这个应该可以吧
作者: vsbat 时间: 2009-11-9 20:33
- @echo off
- setlocal enabledelayedexpansion
- set _CurrPath=.
- set /a b=6*1024*1024
- for %%i in (a\*.sql;b\*.sql;c\*.sql) do set /a n=!n!+%%~zi
- if !n! gtr %b% (echo 内存不足
- ) else (
- for %%i in (a\*.sql;b\*.sql;c\*.sql) do type %%i>>%_CurrPath%\a.log&echo.>>%_CurrPath%\a.log)
- pause>nul
复制代码
这个行不??
%%~zi 扩充到文件大小
[ 本帖最后由 vsbat 于 2009-11-9 20:35 编辑 ]
作者: vsbat 时间: 2009-11-9 20:37
原帖由 Seter 于 2009-11-9 16:06 发表
换行echo.>...就可以了
你的BAT中type %%i >> %_CurrPath%\a.log c.sql >> %_CurrPath%\a.log我看不懂...所以帮不了你啦
意思就是 type %%i >> %_CurrPath%\a.log
type c.sql >> %_CurrPath%\a.log
作者: netbenton 时间: 2009-11-9 21:10
- set/a size=1024*1024*6
- set _CurrPath=.
- set _HuanHang=\n
- for %%k in ("%_CurrPath%\a.log") do (
- for %%i in (a\*.sql;b\*.sql;c\*.sql) do (
- type %%i >> %_CurrPath%\a.log
- echo;>>%_CurrPath%\a.log
- if %%~zk gtr %size% goto :end
- )
- )
- :end
- pause
复制代码
作者: zljzsmzzx 时间: 2009-11-10 09:02
用copy/b file1+file2+file3 newfile不是更好吗?
作者: vsbat 时间: 2009-11-10 14:35
原帖由 zljzsmzzx 于 2009-11-10 09:02 发表
用copy/b file1+file2+file3 newfile不是更好吗?
copy /b 的 话可以一起把几个文件合成一个文件-------
不过 缺点 是跟楼主的要求 一样----内容无分隔,即缺少 回车------
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |