【问题标题】:Command Window will not close命令窗口不会关闭
【发布时间】:2018-01-09 11:57:51
【问题描述】:

我正在运行一个简单的批处理文件来备份一个小型数据库。工作正常,但不会关闭命令提示符。

完整的批处理文件:

db2cmd.exe -i db2stop force
PING localhost -n 6 >NUL
db2cmd.exe -i db2start
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database icmnlsdb to e:\backup
PING localhost -n 6 >NUL
db2cmd.exe -i db2 backup database rmdb to e:\backup

我已尝试添加退出...不行。 尝试了我在其他地方看到的建议。

添加这些行无济于事:

 goto eof
 :eof
 exit

还是没有反应;一直开着

【问题讨论】:

标签: batch-file db2 exit


【解决方案1】:

尝试不同的方法,在下面的代码片段中更改 db2cmd 值以适合您的环境。如果您仍然遇到问题,请编辑您的问题以添加 db2level 命令的输出,并在脚本运行时显示 db2diag.log 文件中到达的条目。

@set db2cmd="C:\Program Files\IBM\SQLLIB\BIN\db2cmd.exe"
@if "%DB2CLP%"=="" %db2cmd% /w /c /i "%0" %* && @goto :EOF
set bkpdir=e:\backup
@if not exist %bkpdir% @echo "Directory %bkpdir% does not exist" && @goto :failEOF
db2stop force
@if errorlevel 1 @echo "Failed to stop Db2 but ignoring this"
db2start
@if errorlevel 4 @echo "Failed to start Db2" && @goto :failEOF
db2 -v backup database icmnlsdb to %bkpdir%
@if errorlevel 1 @echo "Failed to backup icmnlsdb" && @goto :failEOF
db2 -v backup database rmdb to %bkpdir%
@if errorlevel 1 @echo "Failed to backup rmdb" && @goto :failEOF
@echo "Db2 database backups completed successfully"
@exit /b 0
:failEOF
@rem You should add alerting (emails or other notifications) here
@echo "The Db2 offline backups failed"
@exit /b 1

除此之外,您还应该考虑使用 Db2 在线备份,因为这使您可以将 Db2 配置为自动调度备份、管理备份映像的保留、管理故障通知,并且不会中断连接的应用程序。

【讨论】:

    【解决方案2】:

    感谢加拿大的 mustaccio....在发布此内容后在其他地方找到了他的答案。

    只需添加 /c 开关:

    db2cmd.exe -i db2stop force
    PING localhost -n 6 >NUL
    db2cmd.exe -i db2start
    PING localhost -n 6 >NUL
    db2cmd.exe -i db2 backup database icmnlsdb to e:\backup
    PING localhost -n 6 >NUL
    db2cmd.exe -i db2 backup database rmdb to e:\backup
    

    像魅力一样工作。没有更多的命令框。

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 2018-03-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多