InstallScript无法从命令提示符下读取包含结果的文本文件

长龙

我正在编写Installscript函数,以在命令提示符下运行命令,将结果从控制台重定向到文本文件,然后读取文本文件以获取信息。

// send command method
STRING szCmdPath, szCmdLine ;
szCmdPath = "C:\\WINDOWS\\system32\\cmd.exe";
szCmdLine = "/c wslconfig /l > D:\\output.txt";
LaunchAppAndWait(szCmdPath, szCmdLine, WAIT);

send命令方法未按我的要求使用szCmdLine运行命令,它无法识别该命令并产生以下错误:

无法将“ wslconfig”识别为内部或外部命令,可操作程序或批处理文件。

但是,如果我手动启动cmd.exe而不是使用脚本,它将运行命令完全正常。我的脚本出了什么问题以及如何解决这些问题?谢谢大家。

迈克尔·乌尔曼

我在这里看到两个可能引起混淆的元素。一种是32位进程的文件系统重定向(导致加载无法找到wslconfig的32位cmd.exe)。另一个问题是,对输出重定向的命令行处理是否可以满足您的要求。

要进行测试,可以尝试以下操作:

  • 从明确的32位命令提示符(c:\Windows\SysWow64\cmd.exe运行测试
  • 运行其他命令,例如 cmd /c echo got-it > D:\output.txt

我怀疑您可能必须同时解决这两个问题,但坚信32位上下文存在问题。要解决此上下文,请考虑使用WINSYSDIR64将代码更改为以下内容

...
szCmdPath = WINSYSDIR64 ^ "cmd.exe";
...
Disable(WOW64FSREDIRECTION);
LaunchAppAndWait(...)
Enable(WOW64FSREDIRECTION);

(作为一种替代方法,您可以在不禁用WOW64FSREDIRECTION的情况下从32位上下文使用C:\ Windows \ Sysnative访问64位文件夹。不幸的是,该路径没有填充变量,因此您必须进行构造或修改对该路径进行编码。)

要解决输出潜在的重定向问题,请考虑引用/ c的参数:

...
szCmdLine = "/c \"wslconfig /l > D:\\output.txt\"";
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Windows的命令提示符下打印文本文件?

在命令提示符下使用echo创建文本文件

从命令提示符中读取包含字符|的文本。(管)

如何在Windows命令提示符下使用Echo创建多行文本文件?

在Windows命令提示符下将文本文件转换为UTF-8

在命令提示符中在文本文件中显示第(n)行

如何使用python将命令提示符输出转换为文本文件

从Windows cmd提示符下读取和编辑文本文件

如何使用Perl在命令提示符下显示两个文本文件的匹配记录和未匹配记录?

如何将命令提示符从iperf输出到文本文件到文件

使用Windows命令提示符查找大文本文件的总行数时出错

如何从命令提示符下运行VSCode

无法从命令提示符下运行xml测试套件

从命令提示符安装apk文件?

通过蓝牙从命令提示符发送文件

从命令提示符发布文件

如何从命令提示符下将jar反编译为.java文件

如何从命令提示符下打开Visual Studio解决方案文件

创建一个.bat文件,该文件在命令提示符下接受用户输入并将其保存到文本文件中

更改命令提示符下输出的文本颜色?

命令提示符:从任何文本文件执行命令(不具有“ .bat”或“ .cmd”扩展名)

Windows命令提示符Dir命令保存文本文件并且数据中没有扩展名?

在命令提示符下无法识别“ wsimport”错误

无法在命令提示符下运行 .py 脚本

在命令提示符下从命令行打开文件资源管理器

在命令提示符下运行jar文件

在命令提示符下运行.class文件

无法在我的python IDLE中导入pyperclip,但能够从命令提示符下导入

如何从命令提示符打开命令提示符