【问题标题】:How to run command line from Delphi?如何从 Delphi 运行命令行?
【发布时间】:2010-07-31 16:19:34
【问题描述】:

如何从我的 Delphi 应用程序运行此命令?

C:\myapppath\appfolder>appname.exe /stext save.txt

我尝试了以下代码:

ShellExecute(0, nil, 'cmd.exe', 'cd C:\myapppath\appfolder', nil, SW_Hide);
ShellExecute(0, nil, 'cmd.exe', 'appname.exe /stext save.txt', nil, SW_Hide);

但它没有用。谁能提供解决方案?

【问题讨论】:

    标签: delphi


    【解决方案1】:

    要运行 CMD 命令,需要使用 cmd.exe/C 标志:

    ShellExecute(0, nil, 'cmd.exe', '/C cd C:\myapppath\appfolder', nil, SW_HIDE);
    ShellExecute(0, nil, 'cmd.exe', '/C appname.exe /stext save.txt', nil, SW_HIDE);
    

    但是,这将创建两个不同的会话,因此无法正常工作。但是您可以使用 ShellExecute 直接运行appname.exe,如下所示:

    ShellExecute(0, nil, 'appname.exe',  '/stext save.txt', nil, SW_HIDE);
    

    但您需要正确指定文件名。

    我愿意

    var
      path: string;
    
    begin
      path := ExtractFilePath(Application.ExeName);
      ShellExecute(0, nil, PChar(Application.ExeName), PChar('/stext "' + path + 'save.txt"'), nil, SW_HIDE);
    end;
    

    如果appname.exe 是当前应用程序。否则,将Application.ExeName 替换为appname.exe 的完整路径。

    【讨论】:

    • WS_HIDE 应该是 SW_HIDE。我试图编辑它,但收到消息:Edits must be at least 6 characters...
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2021-12-03
    • 2012-08-07
    • 2016-05-14
    相关资源
    最近更新 更多