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

在for循环内部加个计数:

@echo off
for %%i in ("%cd%\*.dmp") do (
echo 正在处理文件 %%i
start imp user/pwd@orcl_192.168.0.1 file=%%i log=%%i.log fromuser=user touser=user buffer=40960 recordlength=65535 commit=n ignore=y ignore=y feedback=1000
)
for /r %%i in (*dmp.log) do (
    copy "test.log"/a+"%%i"/a "test.log"
    set /a n+=1
)
echo 合并的文件个数:%n%
del %cd%\*dmp.log
echo 合并完成.
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 winbat 于 2015-1-7 21:10 编辑

回复 10# Batcher

thank you, I think this is a good idea.
  1. @echo off
  2. for %%i in ("%cd%\*.dmp") do (
  3. echo 正在处理文件 %%i
  4. start imp user/pwd@orcl_192.168.0.1 file=%%i log=%%i.log fromuser=user touser=user buffer=40960 recordlength=65535 commit=n ignore=y ignore=y feedback=1000
  5. )
  6. for /r %%i in (*dmp.log) do copy "test.log"/a+"%%i"/a "test.log"
  7. del %cd%\*dmp.log
  8. echo 合并完成.
复制代码
菜鸟东拼西凑的代码,如能实现下面的效果该如何写呢:
  1. for /r %%i in (%leixing%) do copy /y %%i %goalfile% &&set num+=1
  2. set /a set /a str=!num!*2
  3. echo 共将!str!个文件,合并成!num!个文件
  4. echo 合并完成.
复制代码

TOP

回复 9# winbat


    不能有多个进程同时写一个日志文件(类似数据库里面的写锁)。你可以每个进程写各自的日志,最后把多个日志合并成一个。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher
  1. @echo off
  2. for %%i in ("%cd%\*.dmp") do (
  3. echo 正在处理文件 %%i
  4. start imp user/pwd@orcl_192.168.0.1 file=%%i log=%%i.log fromuser=user touser=user buffer=40960 recordlength=65535 commit=n ignore=y ignore=y feedback=1000
  5. )
复制代码
start 执行解决了。把批处理放在想入库的 dmp 数据目录下运行,dmp数据导入完后会在目录下生成以dmp数据名命名的.log文件
  1. @echo off
  2. for %%i in ("%cd%\*.dmp") do (
  3. echo 正在处理文件 %%i
  4. imp user/pwd@orcl_192.168.0.1 file=%%i log=test.log fromuser=user touser=user buffer=40960 recordlength=65535 commit=n ignore=y ignore=y feedback=1000
  5. )
复制代码
多数据单线程不能同写在一个test.log文体里 ,唉!留给大牛解决吧。
再次感谢 @Batcher 牛的帮助,结帖吧 虽然不完美但也算完成了

TOP

回复 7# winbat


给你的 imp 命令加个参数试试
log=C:\imp.log
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher

>>1.txt imp user/passwd@orcl_192.168.0.1 file=%%i fromuser=user touser=user buffer=4096000 recordlength=65535 commit=n ignore=y ignore=y feedback=100000
还是不能保存记录屏幕内容

我只能添加 pause ,但数据多的话,屏幕缓冲区调大也总是不如保存txt记录屏幕内容,这样也方便于后期统计。
下面这张是数据导入成功回显图,能记录导出txt每个数据包导入成功回显数据就ok了,为了就是方便于后期导入数据统计。有大侠能指点个下么,感激不尽。

TOP

回复 5# winbat


@echo off
>1.txt type nul
for %%i in ("E:\oracle数据入库\*.dmp") do (
    >>1.txt echo 正在处理文件 %%i
    >>1.txt imp user/passwd@orcl_192.168.0.1 file=%%i fromuser=user touser=user buffer=4096000 recordlength=65535 commit=n ignore=y ignore=y feedback=100000
)
你是想把imp的结果也输出?试试这样
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher

txt 输出是只显示:正在处理文件 E:\oracle数据入库\xxxx.dmp 没打印完整的输出结果。
如50个dmp ,start 得 50 个cmd 汗。包太多了,入的太慢还没入完,今天试了几个得以上结果。

可惜结果没整个输出,但还是要感谢 Batcher 大大

TOP

回复 3# winbat


    你不是已经知道在 imp 前面加 start 了吗
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    单线程执行 ??谢谢, 明上班整整看,

TOP

1.bat
  1. @echo off
  2. >1.txt type nul
  3. for %%i in ("E:\oracle数据入库\*.dmp") do (
  4.     >>1.txt echo 正在处理文件 %%i
  5.     imp user/passwd@orcl_192.168.0.1 file=%%i fromuser=user touser=user buffer=4096000 recordlength=65535 commit=n ignore=y ignore=y feedback=100000
  6. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表