IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[分享] AU3 run 函数运行文件带空格的解决方法

[复制链接]
nyjy_hx 发表于 2020-12-17 19:45:22 | 显示全部楼层 |阅读模式

本帖最后由 nyjy_hx 于 2020-12-17 19:48 编辑

在测试程序的时候遇到过自身AU3在带有空格的目录中,例如在同目录下 写入一个BAT文件然后用
runwait(@scriptdir&"\tmp.bat",@sw_hide)运行这个BAT却发现无法运行。因为@scriptdir 中含有空格导致运行失败。
查阅帮助文档发现可以用ShellExecuteWait函数来运行 但是这个函数要实现隐藏窗口需要加入一堆用不到的参数。
所以自己写了一个函数完美解决这个问题并且可以运行所有类型文件哦!!,送给和我一样的小白吧。。。高手就路过吧。。。

这个是个等待运行的例子,有点基础的朋友 完全可以根据这个 自己再封装一个不等待运行的函数 无非就是将 ShellExecuteWait 改为 ShellExecute 就可以了!! 献丑了!!!

Func _runwait($f_path,$r_type) ;$f_path 为程序路径 可以是@scriptdir 即使带空格也没关系  $r_type 运行模式例如 @sw_hide 都是可以的
        ShellExecuteWait(chr(34)&$f_path&Chr(34),"","","",$r_type) ;在运行时在$f_path 两端加入" 双引号解决含有空格路径运行错误的问题,后面的一堆参数用的时候很少,主要是运行模式 隐藏运行窗口 还是怎样运行这个参数经常用
        If @error Then
                $s=0
        Else
                $s=1
        endif
        Return $s
EndFunc


调用方法 $a=_runwait(@scriptdir&"\tmp.bat",@sw_hide)
$a=1 则说明运行成功   $a=0则说明运行失败  例如文件不存在等的情况。

小白专用  高手勿喷!!!!
最近访问 头像模式 列表模式
小鱼儿yr 发表于 2020-12-18 09:34:20 | 显示全部楼层

活跃 721767| 技术 365| 互助 457| 钻石 6590

本帖最后由 小鱼儿yr 于 2020-12-18 09:42 编辑
  1. runwait(@ComSpec & ' /c "' & @scriptdir & '\tmp.bat"',@scriptdir,@sw_hide,'')
复制代码
感觉我是来砸场子的

点评

如果不是 COM BAT EXE文件呢??? 我把runwait功能增强下可以运行所有程序类型。。。。对ShellExecuteWait函数进行二次封装了。。。。 代码块嘛 自己用起来方便想怎么用就怎么用呗。。嘿嘿!!!没想到鱼大还关  详情 回复 发表于 2020-12-18 12:25
 楼主| nyjy_hx 发表于 2020-12-18 12:25:13 | 显示全部楼层

活跃 58| 技术 0| 互助 0| 钻石 0

小鱼儿yr 发表于 2020-12-18 09:34
感觉我是来砸场子的

如果不是 COM  BAT  EXE文件呢???  我把runwait功能增强下可以运行所有程序类型。。。。对ShellExecuteWait函数进行二次封装了。。。。 代码块嘛  自己用起来方便想怎么用就怎么用呗。。嘿嘿!!!没想到鱼大还关注我的帖子,我开始研究AU3就是拜你所赐看了你的很多教程和工具 才引起对AU3的兴趣 以前只是为了加密BAT才用AU3写一些基本代码,简单的窗口程序就直接用VB  拉拉画画就行了。。。。

点评

给你的分享精神和深研精神点个赞  详情 回复 发表于 2020-12-22 21:25
Skyfree 发表于 2020-12-18 14:29:27 | 显示全部楼层

活跃 271537| 技术 1422| 互助 1822| 钻石 31124

实测Run/RunWait的第一个参数带不带空格不会影响运行。估计你的cmd文件里有相对路径东西。
 楼主| nyjy_hx 发表于 2020-12-18 17:37:05 | 显示全部楼层

活跃 58| 技术 0| 互助 0| 钻石 0


测试脚本路径含有空格   runwait(@scriptdir&"\tmp.bat")  返回0 运行失败
空格路径.jpg


批处理内容
批处理内容.jpg


加入自定义函数块 并显示运行窗口
运行中.jpg


运行成功  返回1
运行结束.jpg

测试环境  WIN10 LTSC 系统。。。。。

点评

被调路径两侧加英文双引号试试  详情 回复 发表于 2020-12-18 18:28
Skyfree 发表于 2020-12-18 18:28:12 | 显示全部楼层

活跃 271537| 技术 1422| 互助 1822| 钻石 31124

nyjy_hx 发表于 2020-12-18 17:37
测试脚本路径含有空格   runwait(@scriptdir&"\tmp.bat")  返回0 运行失败

被调路径两侧加英文双引号试试
 楼主| nyjy_hx 发表于 2020-12-18 18:43:52 | 显示全部楼层

活跃 58| 技术 0| 互助 0| 钻石 0

本帖最后由 nyjy_hx 于 2020-12-18 18:47 编辑

可以了   OK  有解决一个问题。。。。



小鱼儿yr 发表于 2020-12-22 21:25:54 | 显示全部楼层

活跃 721767| 技术 365| 互助 457| 钻石 6590

nyjy_hx 发表于 2020-12-18 12:25
如果不是 COM  BAT  EXE文件呢???  我把runwait功能增强下可以运行所有程序类型。。。。对ShellExecut ...

给你的分享精神和深研精神点个赞
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

nyjy_hx

58

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 铭瑄两款RTX 3060上架:4199元电竞之心秒磬
  • 据报道新款14 英寸 MacBook Pro 将采用更亮
  • 技嘉上架四款RTX 3060:魔鹰版超到1837MHz
  • 红米发布K40双旗舰系列 售价1999元起
  • Redmi K40 Pro系列价格公布:最高3699元
  • 3K 90Hz+11代酷睿标压 RedmiBook Pro发布
  • Redmi K40系列正式发布:骁龙888+870 前所
  • 小米平板5外观配置首曝光:骁龙870加持 起
  • AMD MI200计算卡第一次多芯封装:集成HBM2E
  • RTX 3060国行上架:2499元起、今晚21点开抢
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 年前年后
  • 我还能剩下钱
  • 是人干事?
  • 女人逛街后
  • 阔腿裤遇上风
  • 拥有安全气囊的面包服
  • 猫:看老子打死你个鳖孙
  • 有没有想过,座机的另一条发展路径
  • 京都废线的春夏秋冬
  • 年轻人挺讲武德
关注官方微信
快速回复 返回顶部 返回列表