找回密码
 加入
搜索
楼主: itljl

[AU3基础] [已解决]如何能正确获取参数?我想了个办法

 火.. [复制链接]
 楼主| 发表于 2010-8-11 15:36:37 | 显示全部楼层
回复 15# afan


对啊,我就是不在意这一点,因为很多人不在意,让程序去完成计算就是要多兼容。
 楼主| 发表于 2010-8-11 15:38:15 | 显示全部楼层
回复 10# C.L


    大哥,你真牛B,居然被你全弄对了。。。
 楼主| 发表于 2010-8-11 15:40:18 | 显示全部楼层
回复 14# xsjtxy


    谢谢,这里的目的是兼容更多的不规则的输入。
发表于 2010-8-11 16:04:49 | 显示全部楼层
回复  afan


对啊,我就是不在意这一点,因为很多人不在意,让程序去完成计算就是要多兼容。
itljl 发表于 2010-8-11 15:36



    规则都错误何谈兼容哦,你这样做会适得其反,会令命令行操作的程序出错
发表于 2010-8-11 16:19:00 | 显示全部楼层
...顺便给个参考
#Include <WinAPIEx.au3>
_WinAPI_CommandLineToArgv( $sCmd )
netegg 发表于 2010-8-11 04:11



    如果双引号不是成对的,这个函数貌似有问题…
 楼主| 发表于 2010-8-11 16:45:37 | 显示全部楼层
回复 19# afan


是这样的,当用户输入一串不规则的字符,其中包含了程序全路径与参数的时候。如果我们能正确将参数分离出来。就能让程序正常执行了:)

如果分离不出来,就如您所说,无法执行了。
发表于 2010-8-11 16:57:17 | 显示全部楼层
回复 21# itljl


    那用户永远不知道自己错了。以后都不改正。这样存在误导吧。
 楼主| 发表于 2010-8-11 17:44:00 | 显示全部楼层
回复 22# xsjtxy

这可能就是观念问题了,那就要看你是让自己写的程序能在尽可能多的计算机,尽可能多的用户手里都能正确运行,还是让用户尽可能的适应计算机技术与规则来让程序正常运行,之间的选择了。
发表于 2010-8-11 17:50:14 | 显示全部楼层
LZ这个软件是要用户输入字符串来运行程序吗? 类似命令行?
 楼主| 发表于 2010-8-11 18:00:40 | 显示全部楼层
回复 24# afan

是的,接受用户输入一个程序的全路径,然后运行这个程序。当用户输入有参数时,就需要准确的提取出这个参数,才能正确运行程序了。
发表于 2010-8-11 18:04:32 | 显示全部楼层
回复 25# itljl


    那如果用户熟悉命令行规则,在适当的位置使用双引号,那你那样识别就会出错了
 楼主| 发表于 2010-8-11 18:07:56 | 显示全部楼层
回复 26# afan


    是的,主要是遇到好些用户没有加双引号。:)你懂的。
发表于 2010-8-11 18:09:29 | 显示全部楼层
本帖最后由 xsjtxy 于 2010-8-11 18:21 编辑

你试试这样能获取不
10楼的代码。
$path = "c:\program Files\commend\test 123.au3 这里是参数.exe 这里是参数2.exe"
$path2 = "F:\game\tools\include\ChangDesk.exe f:\game\tools\img\ /gui"
$path3 = "C:\Program Files\Internet Explorer\IEXPLORE.EXE http://baidu.com/test"

MsgBox (0,"",$path & @CRLF& "的参数是:" & _getParam ($path) &@CRLF & _
                        $path2 & @CRLF & "的参数是:" &_getParam ($path2) &@CRLF & _
                        $path3 & @CRLF & "的参数是:" & _getParam ($path3))

Func _getParam ($str)
        $var = StringRegExpReplace ($str,'\S:\\.+\\.+\.\S{3}\h(.+)','$1')
        $var = StringReplace ($var," ","|")
        Return $var
EndFunc
发表于 2010-8-11 18:16:38 | 显示全部楼层
既是菜鸟,估计怎么加参数都很成问题。针对菜鸟不应该考虑使用自行输入,或者不考虑加参数
发表于 2010-8-12 03:26:36 | 显示全部楼层
如果要兼容太多的不规则命令、不规则参数,就不是一两行代码可以实现的,我认为起码有下面的这些需要先解决:

1、先分别获取路径和参数,然后进行文件检查,如果文件不存在,则对路径加双引号再重新检查
2、如果还没有此文件,再重新按不同的规则重新获取不同组合的路径和参数,直到找到文件为止
3、如果还是没有找到此文件,刚认为输入的命令为不合格命令,并提示用户重新输入。

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-1 08:24 , Processed in 0.073766 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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