问题:如何在Lua中使用三个命令行选项执行OS命令?
我的设备已连接到我的电脑。 (Windows 7,USB电缆,典型企业)
控制设备的软件位于此处......
C:\Program Files (x86)\PowerUSB\
可执行文件的名称(又名“程序”)是......
pwrusbcmd
该程序需要三个单位数参数1或0,用空格分隔
我打开了一个命令提示框,切换到该目录,并测试了所有8个案例。一切正常。
然后我切换到另一个子目录,并尝试了这个命令......
"C:\Program Files (x86)\PowerUSB\pwrusbcmd" 1 1 1
这也很好。
所以我认为执行该命令的Lua命令要么是......
os.execute("C:\Program Files (x86)\PowerUSB\pwrusbcmd 1 1 1 ")
或
os.execute("C:\\Program Files (x86)\\PowerUSB\\pwrusbcmd 1 1 1")
Lua运行每个,没有任何抱怨, 但 设备上没有任何操作。
所以我尝试改变命令本身的构造,".."
连接总字符串的两个部分,就像这样......
os.execute("C:\\Program Files (x86)\\PowerUSB\\pwrusbcmd".." 1 1 1 ")
仍然没有动作。
我在StackOverflow上看了一下,发现了
我同情每个写这些问题的人。就像用户ID thatthing 一样,我也尝试过..
"
)/s
)到目前为止,我找不到一个有效的语法结构。
唯一的“修复”(如果有的话,用词不当)我自己编写的是编写八个不同的MS-DOS bat文件,并给它们唯一的名称。这使得机器事实上无法使用。
如何让Lua执行此命令???
C:\Program Files (x86)\PowerUSB\pwrusbcmd 1 1 1
答案 0 :(得分:3)
尝试os.execute([["C:\Program Files (x86)\PowerUSB\pwrusbcmd" 1 1 1 ]])
我相信你的问题是文件路径中的空格。
我知道你说你使用了方括号,但我看不出你用过的是哪种组合。这对我有用。
答案 1 :(得分:3)
您忘记在命令名称周围添加双引号,最简单的方法是使用单引号字符串:
os.execute('"C:\\Program Files (x86)\\PowerUSB\\pwrusbcmd" 1 1 1')