zoukankan      html  css  js  c++  java
  • 使用bat文件进行自动关机引发的问题

    在桌面上创建了一个倒计时60秒关机的bat处理文件,脚本为:shutdown -s -t 60

    又创建了一个取消关机的批处理文件:shutdown -a

    两个文件起初都是随便命名的,某天,使用Foobar的scheduler来调用关机批处理,觉得批处理的名字不好,

    重命名了一下,遂改为shutdown.bat,取消关机改为Cancle.bat

    神秘现象出现了,运行这两个批处理时均出现刷屏现象,百思不的其解,

    后看了一篇文章明白了怎么回事:

    原来是重命名为保留关键字惹的祸,看来以后重命名任何东西都要小心,最好用汉语,哈哈。

    bat文件执行数据导出(exp)的刷屏现象  

    2010-03-28 14:45:26|  分类: oracle |  标签: |字号 订阅

     
     

    今天批量导出指定表的数据时,写成了一个bat文件,文件名为exp.bat。双击bat文件后,屏幕出现刷屏现象,数据无法导出。

    bat文件如下:

    exp user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000
    exp user/password@db tables=LOST file=d:\LOST.dmp buffer=1024000
    exp user/password@db tables=TRANS file=d:\TRANS.dmp buffer=1024000

    。。。。。。。。。。。

    双击后bat文件出现刷屏现象,屏幕一直输出第一句导出语句,数据无法导出。

    E:\>exp user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000
    E:\>exp user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000

    。。。。。。。。。。。

    单独copy一条语句,放到cmd下运行。导出成功。到底是什么问题,确实让人疑惑。。。。

    修改bat文件,在文件中指定exp 路径。

    E:\oracle\product\10.2.0\client_1\BIN\exp.exe user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000
    E:\oracle\product\10.2.0\client_1\BIN\exp.exe user/password@db tables=LOST file=d:\LOST.dmp buffer=1024000
    E:\oracle\product\10.2.0\client_1\BIN\exp.exe user/password@db tables=TRANS file=d:\TRANS.dmp buffer=1024000

    。。。。。。。。。。。

     双击文件导出成功。

    到这问题似乎已解决,但这究竟是什么原因呢?况且以前导出也没出现过这种情况啊。。。

    好,下面来测试一下,修改exp.bat文件,增加一个暂停操作。在第一行添加pause,让文件一运行就先暂停。如下

    pause
    exp user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000
    exp user/password@db tables=LOST file=d:\LOST.dmp buffer=1024000
    exp user/password@db tables=TRANS file=d:\TRANS.dmp buffer=1024000

    。。。。。。。。。。。

    双击bat文件,屏幕输出红色部分。按键后输出蓝色部分,继续按输出黑色部分。
    d:\我的文档\桌面>pause
    请按任意键继续. . .

    d:\我的文档\桌面>exp user/password@db tables=STAT file=d:\STAT.dmp buffer=102400
    0

    d:\我的文档\桌面>pause
    请按任意键继续. . .

    d:\我的文档\桌面>exp user/password@db tables=STAT file=d:\STAT.dmp buffer=102400
    0

    d:\我的文档\桌面>pause
    请按任意键继续. . .

    好,终于发现了,只写了一个暂停,可这bat文件在不停的暂停。暂停被循环调用了。

    原来执行到pause后,我们按任意键,会执行下一个语句“exp user/password@db tables=STAT file=d:\STAT.dmp buffer=1024000”,但是调用exp命令时,不是调用oracle目录下的exp.exe。而是调用我的exp.bat,所以再次进入了暂停,形成了死循环。

    这就是为啥出现了刷屏的现象。。。(这也好,以后想刷屏的话。把这脚本拿出来就行了。哈)

    谨记规范命名,不能再写成exp.bat

  • 相关阅读:
    日期和时间模块
    批处理bat文件dos命令实现文件的解压缩
    批处理bat文件dos命令复制文件
    dos命令临时和永久设置环境变量方法
    [转]NHibernate之旅(13):初探立即加载机制
    [转]NHibernate之旅(12):初探延迟加载机制
    [转]NHibernate之旅(11):探索多对多关系及其关联查询
    [转]NHibernate之旅(10):探索父子(一对多)关联查询
    [转]NHibernate之旅(9):探索父子关系(一对多关系)
    [转]NHibernate之旅(8):巧用组件之依赖对象
  • 原文地址:https://www.cnblogs.com/CCJVL/p/2865426.html
Copyright © 2011-2022 走看看