如果我在rxvt中打开Cygwin,运行wmic不会显示预期的wmic:root\cli>提示符。 如果我从cmd.exe执行C:\cygwin\bin\bash.exe ,则在bash.exe运行wmic将返回预期的提示。 为什么?
我有环境variablesCYGWIN设置为ntsec tty 。 我可以echo "hello"与一个回应,一切似乎快乐。 就在我运行wmic和其他几个有提示的Windows应用程序的时候,提示信息就不会出现。
对于wmic,请尝试使用echo '' | wmic <query here> echo '' | wmic <query here> ,其中<query here>是您所需的查询。
例如,要通过SSH获取戴尔机器的服务标签: echo '' | wmic bios get serialnumber echo '' | wmic bios get serialnumber 。
让交互模式工作似乎对我来说毫无结果,但是这应该将大部分wmic的function暴露给你。
失败的尝试:
我读到的另一种解决scheme是在末尾使用< /dev/null而不是echo '' | 在前面,即: wmic bios get serialnumber < /dev/null 。 但是,我不是这个运气。 (来自Nabble线程 )
我读到的另一个解决scheme是尝试在CYGWIN环境variables中设置tty 。 对我来说也没有运气。 (来自Cygwin邮件列表中的Larry Hall发布,由于防止垃圾邮件而未链接)
这是Cygwin与本地控制台应用程序问题。 Rxvt基于一个“伪terminal设备”(pty),Cygwin使用Windowspipe道实现。 非Cygwin应用程序只能看到Windowspipe道,这使得其中的一些人认为他们应该进入非交互模式没有提示。 (更具体地说,当调用pipe道时,isatty()函数返回false。)
根据您使用的Cygwin的版本,您可能需要使用</ dev / null。 我相信我正在使用1.7,并且我不再必须在大多数Windows版本上使用</ dev / null(例外是Windows 2003 R2,您仍然必须使用</ dev / null)。
这里是一个例子:
wmic bios(适用于几乎所有版本的Windows)wmic bios </ dev / null(适用于所有版本的Windows,基于我的testing)
希望这可以帮助。
回声不是必需的。
在cygnin提示符下运行:
Administrator@darwin-test7-wi ~ $ wmic pagefileset where 'name="C:\\pagefile.sys"' delete Deleting instance \\DARWIN-TEST7-WI\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys" Instance deletion successful. ============================================= Administrator@darwin-test7-wi ~ $ wmic pagefileset create name="C:\\pagefile.sys" Instance creation successful. ----------------------------------------------------- Administrator@darwin-test7-wi ~ $ wmic pagefileset where 'name="C:\\pagefile.sys"' set InitialSize=512,MaximumSize=512 Updating property(s) of '\\DARWIN-TEST7-WI\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' Property(s) update successful. ------------------------------------------------------