itljl 发表于 2010-8-11 15:36:37

回复 15# afan


对啊,我就是不在意这一点,因为很多人不在意,让程序去完成计算就是要多兼容。

itljl 发表于 2010-8-11 15:38:15

回复 10# C.L


    大哥,你真牛B,居然被你全弄对了。。。

itljl 发表于 2010-8-11 15:40:18

回复 14# xsjtxy


    谢谢,这里的目的是兼容更多的不规则的输入。

afan 发表于 2010-8-11 16:04:49

回复afan


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


    规则都错误何谈兼容哦,你这样做会适得其反,会令命令行操作的程序出错

afan 发表于 2010-8-11 16:19:00

...顺便给个参考
#Include <WinAPIEx.au3>
_WinAPI_CommandLineToArgv( $sCmd )
netegg 发表于 2010-8-11 04:11 http://www.autoitx.com/images/common/back.gif


    如果双引号不是成对的,这个函数貌似有问题…

itljl 发表于 2010-8-11 16:45:37

回复 19# afan


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

如果分离不出来,就如您所说,无法执行了。

xsjtxy 发表于 2010-8-11 16:57:17

回复 21# itljl


    那用户永远不知道自己错了。以后都不改正。这样存在误导吧。

itljl 发表于 2010-8-11 17:44:00

回复 22# xsjtxy

这可能就是观念问题了,那就要看你是让自己写的程序能在尽可能多的计算机,尽可能多的用户手里都能正确运行,还是让用户尽可能的适应计算机技术与规则来让程序正常运行,之间的选择了。

afan 发表于 2010-8-11 17:50:14

LZ这个软件是要用户输入字符串来运行程序吗? 类似命令行?

itljl 发表于 2010-8-11 18:00:40

回复 24# afan

是的,接受用户输入一个程序的全路径,然后运行这个程序。当用户输入有参数时,就需要准确的提取出这个参数,才能正确运行程序了。

afan 发表于 2010-8-11 18:04:32

回复 25# itljl


    那如果用户熟悉命令行规则,在适当的位置使用双引号,那你那样识别就会出错了

itljl 发表于 2010-8-11 18:07:56

回复 26# afan


    是的,主要是遇到好些用户没有加双引号。:)你懂的。

xsjtxy 发表于 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

afan 发表于 2010-8-11 18:16:38

既是菜鸟,估计怎么加参数都很成问题。针对菜鸟不应该考虑使用自行输入,或者不考虑加参数

C.L 发表于 2010-8-12 03:26:36

如果要兼容太多的不规则命令、不规则参数,就不是一两行代码可以实现的,我认为起码有下面的这些需要先解决:

1、先分别获取路径和参数,然后进行文件检查,如果文件不存在,则对路径加双引号再重新检查
2、如果还没有此文件,再重新按不同的规则重新获取不同组合的路径和参数,直到找到文件为止
3、如果还是没有找到此文件,刚认为输入的命令为不合格命令,并提示用户重新输入。
页: 1 [2] 3
查看完整版本: [已解决]如何能正确获取参数?我想了个办法