當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Dart Process.run用法及代碼示例


dart:io 庫中Process.run 方法的用法介紹如下。

用法:

Future<ProcessResult> run(
   String executable,    
   List<String> arguments,    
   {String? workingDirectory,    
   Map<String, String>? environment,    
   bool includeParentEnvironment = true,    
   bool runInShell = false,    
   Encoding? stdoutEncoding = systemEncoding,    
   Encoding? stderrEncoding = systemEncoding}   
)

啟動一個進程並以非交互方式運行它直到完成。進程運行是 executable 和指定的 arguments

使用workingDirectory 設置進程的工作目錄。請注意,在某些平台上執行進程之前會發生目錄更改,這可能會在使用可執行文件和參數的相對路徑時產生影響。

使用environment 設置進程的環境變量。如果不設置,則繼承父進程的環境。目前隻支持US-ASCII環境變量,如果傳入code-points超出US-ASCII範圍的環境變量,很可能會出錯。

如果 includeParentEnvironmenttrue ,則進程的環境將包括父進程的環境,以 environment 優先。默認為 true

如果runInShell 為真,該進程將通過係統 shell 生成。在 Linux 和 OS X 上,使用 /bin/sh,而在 Windows 上使用 %WINDIR%\system32\cmd.exe

用於將 stdoutstderr 解碼為文本的編碼由 stdoutEncodingstderrEncoding 控製。默認編碼是 systemEncoding 。如果使用null,則不會發生解碼,ProcessResult 將保存二進製數據。

返回一個Future<ProcessResult>,它以運行進程的結果結束,即退出代碼、標準輸出和標準輸入。

以下代碼使用Process.run 在Linux 上的test.dart 文件中查找main

var result = await Process.run('grep', ['-i', 'main', 'test.dart']);
stdout.write(result.stdout);
stderr.write(result.stderr);

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 run method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。