2014-11-04 115 views
0

我有一个基于用户输入运行FluentMigrator迁移的批处理文件。最后一步是运行如下的迁移:在批处理文件中获取Migrate.exe的输出

"%~dp0\FluentMigrator.1.1.2.1\tools\Migrate.exe" /conn "DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%HostName%)(PORT=%ServerPort%))(CONNECT_DATA=(SERVICE_NAME=%ServiceName%)));PASSWORD=%installerUserPW%;PERSIST SECURITY INFO=True;USER ID=%installerUserName%;" /provider oracle /context %installerUserName% /assembly ./bin/Debug/DatabaseMigrations.dll >> install_log.txt 

ECHO. 
echo ------------------------------------------------------------------------------->> install_log.txt 
echo ------------------ Database Setup has executed successfully ------------------ >> install_log.txt 
echo ------------------------------------------------------------------------------->> install_log.txt 
TYPE install_log.txt 
GOTO:EOF 

一样需要这工作 - 该Migrate.exe应用程序的所有打印输出到文件,然后成功的消息,然后将文件写入到控制台所以有一个控制台和文件副本。但是,如果迁移失败,例如,如果用户不具有数据库的写入权限,则它无法按预期工作。在这种情况下,结束消息期望文件已正确执行。有什么方法可以确定迁移者是否退出了错误?

我想显示:

  • 迁移代码
  • (如果失败),失败的错误消息
  • (否则)成功消息

编辑:我本来问到如何显示错误和一般输出 - 这是通过>> install_log.txt 2>&1代码实现的。现在我只需要弄清楚如何识别迁移时是否发生错误。

回答

0

我发现的溶液如下:

"%~dp0\FluentMigrator.1.1.2.1\tools\Migrate.exe" /conn "DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%HostName%)(PORT=%ServerPort%))(CONNECT_DATA=(SERVICE_NAME=%ServiceName%)));PASSWORD=%installerUserPW%;PERSIST SECURITY INFO=True;USER ID=%installerUserName%;" /provider oracle /context %installerUserName% /assembly ./bin/Debug/DatabaseMigrations.dll >> migrate_log.txt 2>> migrateerror_log.txt 
if exist migrate_log.txt (
     if exist migrateerror_log.txt (
     TYPE migrateerror_log.txt >> install_log.txt 
     echo ------------------------------------------------------------------------------->> install_log.txt 
     echo -------------------------- Database Setup has failed ------------------------- >> install_log.txt 
     echo ------------------------------------------------------------------------------->> install_log.txt 
    ) else (
     echo ------------------------------------------------------------------------------->> install_log.txt 
     echo ----------------- Database Setup has completed successfully ------------------ >> install_log.txt 
     echo ------------------------------------------------------------------------------->> install_log.txt 
    ) 
) else (
    echo ------------------------------------------------------------------------------->> install_log.txt 
    echo ------------- An unexpected error has occurred in FluentMigrator ------------- >> install_log.txt 
    echo ------------------------------------------------------------------------------->> install_log.txt 
) 
相关问题