Windows 10 在批处理文件中隐藏 RAISERROR WITH NOWAIT 消息
Windows 10 hides RAISERROR WITH NOWAIT messages in batch file
在 Windows 10 中,似乎从 sqlcmd 调用的所有 RAISERROR WITH NOWAIT
消息现在都隐藏在命令提示符中,直到批处理完成:
> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1
(no output to console until waitfor
is finished)
将此与 Windows 2008 R2 中的相同命令 运行 进行比较:
> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1
Test message
(immediate output)
在上面的示例中,即使批处理尚未完成,您也可以看到消息。
Windows10 中是否有配置设置可以恢复此功能?我有依赖 WITH NOWAIT
来显示进度的遗留批处理文件。
这是因为 sqlcmd11(不确定是否更高)does not honor RAISERROR WITH NOWAIT。它似乎与底层 OS.
没有任何关系
这是一个 link 到 Whosebug post 的一些可能的解决方法。
在 Windows 10 中,似乎从 sqlcmd 调用的所有 RAISERROR WITH NOWAIT
消息现在都隐藏在命令提示符中,直到批处理完成:
> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1
(no output to console until waitfor
is finished)
将此与 Windows 2008 R2 中的相同命令 运行 进行比较:
> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1
Test message
(immediate output)
在上面的示例中,即使批处理尚未完成,您也可以看到消息。
Windows10 中是否有配置设置可以恢复此功能?我有依赖 WITH NOWAIT
来显示进度的遗留批处理文件。
这是因为 sqlcmd11(不确定是否更高)does not honor RAISERROR WITH NOWAIT。它似乎与底层 OS.
没有任何关系这是一个 link 到 Whosebug post 的一些可能的解决方法。