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

回复 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

回复 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

回复 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

回复 9# winbat


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

TOP

回复 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

回复 13# winbat


    你把最后生成的test.log压缩一下,传上来,我告诉你如何计算。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 15# winbat
  1. set TotalLine=0
  2. for /f "tokens=2" %%i in ('findstr "导入了" test.log') do (
  3.     set /a TotalLine+=%%i
  4. )
  5. echo 导入总行数:%TotalLine%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那就是 start 执行完 oracle imp 入库命令 dmp 数据入库到完成是要一定时间的

可以看看imp的时候是不是有对应的进程,根据进程判断imp是否执行完毕,类似于这个:
http://bbs.bathome.net/thread-33711-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 18# winbat


    把你测试的代码和测试的结果发出来我看看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 20# winbat


第9行为什么使用中文括号?
第12行的括号是什么目的?
echo 导入总行数:%TotalLine% 为什么被你删掉了?

你直接把16楼的代码放到13楼代码的后面,不要乱改。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 22# winbat


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

TOP

@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
)
:loop
ping -n 5 127.1 >nul
echo 正在判断 imp.exe 进程
tasklist | findstr /i "imp.exe" > nul && goto :loop
echo 正在合并日志文件

for /r %%i in ("%cd%") do (
    copy "*.dmp.log"/a+"%%i"/a "test.log"
    set /a n+=1
)
echo 合并的文件个数:%n%
del %cd%\*dmp.log
pause
set TotalLine=0
for /f "tokens=2" %%i in ('findstr "导入了" test.log') do (
    set /a TotalLine+=%%i
)
echo 导入总行数:%TotalLine%>>test.log
pause
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表