我们使用下面的代码来获取计算机的名称。
def new shared var cHost as char format "x(40)" no-undo.
INPUT THROUGH hostname NO-ECHO.
SET cHost.
INPUT CLOSE.
DISPLAY chost.
在我们更新计算机 (Windows 10 - 1703) 后,它不再有效。似乎 SET cHost 是它失败的部分。我试过 IMPORT UNFORMATTED cHost 但它不起作用。
PS:我可以使用 OS-GETENV("COMPUTERNAME") 获取计算机名称,但我必须使用 INPUT THROUGH 语句来获取。
编辑: 看来这不仅仅是 10.2A 的问题,而是更普遍的问题。此外,它不仅与主机名相关,还与所有控制台应用程序 和ms-dos 命令 相关。现在,我将尝试用另一个 Progress 命令替换 INPUT THROUGH 语句(如果有),或者尝试使用其他方法与现有控制台应用程序通信。
最佳答案
我要做的第一件事是验证“主机名”命令是否仍在命令窗口中正常工作。
假设是这样,我会像这样编写您的代码段:
INPUT THROUGH VALUE( "hostname" ).
IMPORT UNFORMATTED cHost.
INPUT CLOSE.
DISPLAY cHOST format "x(60)".
这可能会揭示比“它不再有效”更有用的错误消息。
由于 COMPUTERNAME 满足您的需求,但出于某些非常神秘的原因您必须使用 INPUT THROUGH,您也可以尝试:
INPUT THROUGH VALUE( "echo %COMPUTERNAME%" ).
IMPORT UNFORMATTED cHost.
INPUT CLOSE.
DISPLAY cHOST format "x(60)".
关于set - OpenEdge 10.2A - INPUT THROUGH 设置在 Windows 10 上的 Windows Update 1703 后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614638/