找回密码
 加入
搜索
查看: 6105|回复: 17

[AU3基础] WIN64系统 Run执行DOS不行,CMD执行又可以 - 已解决

[复制链接]
发表于 2021-5-12 21:39:04 | 显示全部楼层 |阅读模式
本帖最后由 rally 于 2021-5-13 13:21 编辑

这个问题始终没弄懂。之前请教了afan大大重定向问题。这次又碰到非重定向问题情况,不知道如何解关键同样是win64 OS,有的机器上可以,有的又不行,不知道哪里的问题。如下图情况。代码直接粘贴过来也运行不了,所以就不贴了哈 。还请版主大大和各路高手指点一下



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2021-5-12 21:47:05 | 显示全部楼层
本帖最后由 afan 于 2021-5-12 21:52 编辑

解决方法跟上贴不是一样么?一步步测试。
这里应该不牵涉到重定向,应该直接用完整路径。run 工作目录参数不要,设置为空。
 楼主| 发表于 2021-5-12 22:06:09 | 显示全部楼层
afan 发表于 2021-5-12 21:47
解决方法跟上贴不是一样么?一步步测试。
这里应该不牵涉到重定向,应该直接用完整路径。run 工作目录参数 ...

大大,这样测试都不行。加了后面传递输出内容到文件就不行。加后面 >>C:\1.txt就不行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2021-5-12 22:09:49 | 显示全部楼层
rally 发表于 2021-5-12 22:06
大大,这样测试都不行。加了后面传递输出内容到文件就不行。加后面 >>C:\1.txt就不行

你的空格又掉了。。。
代码为什么要贴图呢?是不想让别人方便复制回复吗?
发表于 2021-5-12 22:13:08 | 显示全部楼层
另外,你这个路径是带空格的,需要双引号。
 楼主| 发表于 2021-5-12 22:20:11 | 显示全部楼层
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
 楼主| 发表于 2021-5-12 22:20:45 | 显示全部楼层
本帖最后由 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的系统
 楼主| 发表于 2021-5-12 22:23:32 | 显示全部楼层
加输出到 1.txt文件(>>C:\1.txt)  ,这个就不行
发表于 2021-5-12 22:26:04 | 显示全部楼层
RunWait('"C:\Program Files\smartmontools\bin\smartctl.exe" -a /dev/pd1>>C:\1.TXT', "", @SW_SHOW)
 楼主| 发表于 2021-5-12 22:35:26 | 显示全部楼层

还是在我的win7上不行,win10上测都没问题。没搞懂
发表于 2021-5-12 22:42:40 | 显示全部楼层
rally 发表于 2021-5-12 22:35
还是在我的win7上不行,win10上测都没问题。没搞懂

确定win7也是这个相同的路径 C:\Program Files\smartmontools\bin\smartctl.exe

回显提示什么?光说不行有什么用
 楼主| 发表于 2021-5-13 08:30:22 | 显示全部楼层
回显提示的还是 "Smartctl.exe"既不是内部命令也不是外部命令,也不是可运行的程序或批处理文件。关键是 RunWait('"C:\Program Files\smartmontools\bin\smartctl.exe" -a /dev/pd1', "", @SW_SHOW) 可以运行,但增加输出结果到文件>>C:1\txt ,就不行,提示这个错误
 楼主| 发表于 2021-5-13 13:21:11 | 显示全部楼层
问题找到了。原来是由于环境变量PATH值被更改了,更改回来都可以运行了。非常感谢afan大大耐心的指导
发表于 2021-5-13 14:56:08 | 显示全部楼层
rally 发表于 2021-5-13 13:21
问题找到了。原来是由于环境变量PATH值被更改了,更改回来都可以运行了。非常感谢afan大大耐心的指导

不是使用的绝对路径吗? C:\Program Files\smartmontools\bin\smartctl.exe 包括后面的 C:\1.TXT 也是全路径。
那与环境变量PATH值有何关系?
如果有关系那你直接在CMD窗口执行应该也不会成功才对。
 楼主| 发表于 2021-5-13 15:09:16 | 显示全部楼层
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;   
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 02:16 , Processed in 0.076285 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表