set - OpenEdge 10.2A - INPUT THROUGH 设置在 Windows 10 上的 Windows Update 1703 后不起作用

标签 set progress-4gl openedge windows-update

我们使用下面的代码来获取计算机的名称。

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/

相关文章:

查找唯一项目集的算法,一组项目中的每一个项目

schema - 如何通过odbc从Progress数据库获取表架构

.net - 输入.NET事件时,进度开发器Studio for OpenEdge 11.6(32位)崩溃

sql - 如何根据 Case When 进行不同计数?

java - 删除 TreeSet 的匹配元素

java - 如何将数组与重复项作为集合进行比较?

progress-4gl - try catch 进行中

openedge - 使用带有多个可能分隔符的 num-entries()

java - 在java中创建唯一值的列表

progress-4gl - 一个空格字符的 INTEGER()