命令行中的可变文件路径Lazarus / Free Pascal

时间:2017-08-07 15:05:34

标签: lazarus

我想执行一个名为'copy.bat'的外部程序,位于我的桌面'C:\ Users \ Jack \ Desktop \ RunProgram \ lib \ x86_64-win64'。如果我想在其他人的Compter / Account上运行程序,其中'copy.bat'在同一个文件夹中,它不起作用,因为用户名更改。 我的问题:有没有办法使用可变用户名?

这是我提出的但它不起作用......

  var
  Form1: TForm1;
  Runprogram:TProcess;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  RunProgram := TProcess.Create(nil);
  RunProgram.CommandLine := '%USERPROFILE%\Desktop\RunProgram\lib\x86_64-win64\Copy.bat';
  RunProgram.Execute;
  RunProgram.Free;


end; 

P.S。如果我输入此路径'C:\ Users \ Jack \ Desktop \ RunProgram \ lib \ x86_64-win64 \ Copy.bat'它可以工作。

1 个答案:

答案 0 :(得分:0)

您可以使用功能" GetEnvironmentVariable"

userP := GetEnvironmentVariable(String('USERPROFILE'));
RunProgram.CommandLine := userP + '\Desktop\RunProgram\lib\x86_64-win64\Copy.bat';