找回密码
 加入
搜索
查看: 1308|回复: 5

如何实现如下功能

[复制链接]
发表于 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目录中的参数?
发表于 2009-8-18 12:18:51 | 显示全部楼层
#include <Process.au3>
_RunDOS ( 'cd tmp & ..\bin\dyn\gen.exe  ..\net\cfg.net')
试下
 楼主| 发表于 2009-8-18 17:36:20 | 显示全部楼层
谢谢afan。可以用下列方法解决:

Run( @ComSpec & " /k """ & "cd tmp && ..\bin\dyn\gen.exe  ..\net\cfg.net " & """","",@SW_SHOW )
发表于 2009-8-18 18:07:50 | 显示全部楼层
其实2#的结果应该和你3#的结果是一样的,之所以用 _rundos 就是不想在引号较多的情况下出错。
/k 在这里意义不大...
Run( @ComSpec & ' /c cd tmp & ..\bin\dyn\gen.exe  ..\net\cfg.net') ;不隐藏运行看看结果~
 楼主| 发表于 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]定义没问题。
发表于 2009-8-20 16:24:14 | 显示全部楼层
RunWait(@ComSpec & " /c " & @TempDir & "\curl.exe -T " & $ulocalFiles[$i] & " " & $ufiles[$i], '', 0)
确保变量 $ulocalFiles[$i], $ufiles[$i] 值没有空格,否则还得外加引号,如果不行可以加入工作目录试试
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 01:05 , Processed in 0.080663 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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