jxdeng 发表于 2009-8-18 12:02:23

如何实现如下功能

有一DOS脚本如下(aa.bat):
◎echo off
cd tmp
..\bin\dyn\gen.exe..\net\cfg.net

想用AU3 来实现,结果如下:
一、RUN...
Run("aa.bat") ; 结果成功。

二、RUN....
把aa.bat 转换成aa.exe,
Run("aa.exe") ; 结果也成功。

三、RUN.....
Run( @ComSpec & " /k """ & "cd tmp" &"""","",@SW_SHOW )
Run( @ComSpec & " /k """ & "..\bin\dyn\gen.exe..\net\cfg.net " & """","",@SW_SHOW )

每一句都成功,但是出现了两个DOS窗口,不是我所要的第二句在第一句所出现的窗口下运行。无法实现DOS脚本想要的结果。

请教各位?如何实现在指定的TMP 目录下运行在BIN目录中的DOS程序,并附带NET目录中的参数?

afan 发表于 2009-8-18 12:18:51

#include <Process.au3>
_RunDOS ( 'cd tmp & ..\bin\dyn\gen.exe..\net\cfg.net')试下

jxdeng 发表于 2009-8-18 17:36:20

谢谢afan。可以用下列方法解决:

Run( @ComSpec & " /k """ & "cd tmp && ..\bin\dyn\gen.exe..\net\cfg.net " & """","",@SW_SHOW )

afan 发表于 2009-8-18 18:07:50

其实2#的结果应该和你3#的结果是一样的,之所以用 _rundos 就是不想在引号较多的情况下出错。
/k 在这里意义不大...
Run( @ComSpec & ' /c cd tmp & ..\bin\dyn\gen.exe..\net\cfg.net') ;不隐藏运行看看结果~

jxdeng 发表于 2009-8-20 16:08:37

讨教:运行DOS实用程序CURL.EXE 的问题
在dos cmd 下直接运行
curl.exe -T m:\aaa\kkjg0720090820.txt ftp://hxabc:hxabc@100.17.22.151/recv/kkjg07200
820.txt
文件上传成功。
但是一用到RUN (RUNWAIT) 来执行,就不行,命令串确保没有问题:

RunWait(@ComSpec & " /c " & @TempDir & "\curl.exe" & " " & "-T" & " " & $ulocalFiles[$i] & " " & $ufiles[$i], "", @SW_HIDE)

变量 $ulocalFiles[$i], $ufiles[$i]定义没问题。

afan 发表于 2009-8-20 16:24:14

RunWait(@ComSpec & " /c " & @TempDir & "\curl.exe -T " & $ulocalFiles[$i] & " " & $ufiles[$i], '', 0)确保变量 $ulocalFiles[$i], $ufiles[$i] 值没有空格,否则还得外加引号,如果不行可以加入工作目录试试
页: [1]
查看完整版本: 如何实现如下功能