WIN64系统 Run执行DOS不行,CMD执行又可以 - 已解决
本帖最后由 rally 于 2021-5-13 13:21 编辑这个问题始终没弄懂。之前请教了afan大大重定向问题。这次又碰到非重定向问题情况,不知道如何解关键同样是win64 OS,有的机器上可以,有的又不行,不知道哪里的问题。如下图情况。代码直接粘贴过来也运行不了,所以就不贴了哈 。还请版主大大和各路高手指点一下
本帖最后由 afan 于 2021-5-12 21:52 编辑
解决方法跟上贴不是一样么?一步步测试。
这里应该不牵涉到重定向,应该直接用完整路径。run 工作目录参数不要,设置为空。 afan 发表于 2021-5-12 21:47
解决方法跟上贴不是一样么?一步步测试。
这里应该不牵涉到重定向,应该直接用完整路径。run 工作目录参数 ...
大大,这样测试都不行。加了后面传递输出内容到文件就不行。加后面 >>C:\1.txt就不行
rally 发表于 2021-5-12 22:06
大大,这样测试都不行。加了后面传递输出内容到文件就不行。加后面 >>C:\1.txt就不行
你的空格又掉了。。。
代码为什么要贴图呢?是不想让别人方便复制回复吗? 另外,你这个路径是带空格的,需要双引号。 afan 发表于 2021-5-12 22:13
另外,你这个路径是带空格的,需要双引号。
;~ $run = Run('cmd /c C:\Program Files\smartmontools\bin\smartctl.exe -a /dev/pd1 >> C:\1.txt',"", @SW_HIDE,15)
;~ ProcessWaitClose($run)
;~ $text=StdoutRead($run)
;~ MsgBox(0, "STDOUT read:", $text)
;~ MsgBox(0, '', FileExists('C:\Program Files\smartmontools\bin\smartctl.exe'));测试结果: 1
;~ ShellExecute('C:\Program Files\smartmontools\bin\smartctl.exe','-a /dev/pd1 ',"","",@SW_SHOW); 测试OK
;~ ShellExecute('C:\Program Files\smartmontools\bin\smartctl.exe','-a /dev/pd1>>C:\1.txt',"","",@SW_SHOW); 测试NG,加>>C:\1.txt不行
RunWait(@ComSpec & ' /C ' & "C:\Program Files\smartmontools\bin\smartctl.exe -a /dev/pd1>>C:\1.TXT","",@SW_SHOW) ;测试NG 本帖最后由 rally 于 2021-5-12 22:22 编辑
rally 发表于 2021-5-12 22:20
;~ $run = Run('cmd /c C:\Program Files\smartmontools\bin\smartctl.exe -a /dev/pd1 >> C:\1.txt'," ...
大大,加空格,“”都不行。而且这个在别的电脑上运行都是可以的,只是我现在在一台电脑上测的又不行。不知道系统参数哪里的差异,都是WIN64的系统 加输出到 1.txt文件(>>C:\1.txt),这个就不行 RunWait('"C:\Program Files\smartmontools\bin\smartctl.exe" -a /dev/pd1>>C:\1.TXT', "", @SW_SHOW) afan 发表于 2021-5-12 22:26
还是在我的win7上不行,win10上测都没问题。没搞懂 rally 发表于 2021-5-12 22:35
还是在我的win7上不行,win10上测都没问题。没搞懂
确定win7也是这个相同的路径 C:\Program Files\smartmontools\bin\smartctl.exe
回显提示什么?光说不行有什么用 回显提示的还是 "Smartctl.exe"既不是内部命令也不是外部命令,也不是可运行的程序或批处理文件。关键是 RunWait('"C:\Program Files\smartmontools\bin\smartctl.exe" -a /dev/pd1', "", @SW_SHOW) 可以运行,但增加输出结果到文件>>C:1\txt ,就不行,提示这个错误 问题找到了。原来是由于环境变量PATH值被更改了,更改回来都可以运行了。非常感谢afan大大耐心的指导 rally 发表于 2021-5-13 13:21
问题找到了。原来是由于环境变量PATH值被更改了,更改回来都可以运行了。非常感谢afan大大耐心的指导
不是使用的绝对路径吗? C:\Program Files\smartmontools\bin\smartctl.exe 包括后面的 C:\1.TXT 也是全路径。
那与环境变量PATH值有何关系?
如果有关系那你直接在CMD窗口执行应该也不会成功才对。 afan 发表于 2021-5-13 14:56
不是使用的绝对路径吗? C:\Program Files\smartmontools\bin\smartctl.exe 包括后面的 C:\1.TXT 也是全 ...
嗯,这个也没想明白,也就尝试改了下系统变量path值,之前被一个程序修改了。加上下面值,问题就没有了
C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;
页:
[1]
2