【问题标题】:AIR - Batch File As CMD.exe ArgumentAIR - 批处理文件作为 CMD.exe 参数
【发布时间】:2010-10-18 01:21:20
【问题描述】:

AIR 不允许直接将 .bat 文件作为本机进程启动,因此显然我想将 CMD.exe 设置为我的 startupInfo 可执行文件并传递我的 .bat 文件及其参数。

我无法让它工作,所以我希望这是一个语法问题。这是我的代码:

var testStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
testStartupInfo.executable = new File("C:\\WINDOWS\\system32\\cmd.exe");

var processArguments:Vector.<String> = new Vector.<String>();
processArguments[0] = "/c";
processArguments[1] = "\"C:\\Documents and Settings\\Administrator\\Desktop\\Test\\Test.bat\"";
processArguments[2] = "-testBatPeram1";
processArguments[3] = "-testBatPeram2";
processArguments[4] = "Peram3";
processArguments[5] = "C:\\Documents and Settings\\Administrator\\Desktop\\SaveText.txt";

testStartupInfo.arguments = processArguments;

var test:NativeProcess = new NativeProcess();
test.start(testStartupInfo);

如果我在命令行提示符中手动编写批处理文件及其参数,它们可以正常工作,所以我不知道为什么从 AIR 启动时什么都没有发生。

【问题讨论】:

  • 它是否可以从常规的非用户目录 c:\Test 工作? arg5 也没有 "" 分隔符
  • 将引号添加到参数 5 没有帮助。

标签: process batch-file air native cmd


【解决方案1】:

好的,我认为到现在(3 个月后)您已经意识到这不起作用,因为您的 bat 文件路径包含空格。 您是否找到任何解决方法或解决方案之类的?

我有一个很好的近似值,对你来说已经足够了:

不要将参数传递给您的 bat,而是尝试通过它的 stdinput 写入它。 我的意思是,不要在调用 bat 时传递参数,而是将该信息视为执行时读取的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多