[英]how to run system command in perl script with Cygwin
我正在嘗試在Cygwin中實現perl腳本。 該腳本在其中進行了一些不同的調用。 例如,
system "C:\\users\\program.exe";
要么
exec("C:\\users\\program.exe");
當我嘗試在cygwin中運行它時,出現了以下錯誤:
sh: C:cygwin64cygdriveprogram.exe: command not found
我知道這是一個愚蠢的問題,但是如何使它找到program.exe? 如果我在cygwin終端中瀏覽目錄,則顯然有program.exe ...
找到程序后,我想在新的Cygwin終端中生成新過程。
使用Unix文件分隔符和/cygdrive/c/
虛擬驅動器:
system "/cygdrive/c/users/program.exe";
要么
exec("/cygdrive/c/users/program.exe")
exec("C:\\users\\program.exe");
執行bourne shell命令
C:\users\program.exe
這是一種怪異的寫作方式
C:usersprogram.exe
執行以下shell命令可能會起作用:
C:\\users\\program.exe # exec("C:\\\\users\\\\program.exe");
但是正確的路徑是
/cygdrive/c/users/program.exe # exec("/cygdrive/c/users/program.exe")
TMTOWTDI:
#! /usr/bin/env perl
use strict;
use warnings;
my @cmd = ("/c", "echo", "hi" );
system('C:\\Windows\\System32\\cmd.exe', @cmd) == 0 or die;
system('C:/Windows/System32/cmd.exe', @cmd) == 0 or die;
system('/cygdrive/c/Windows/System32/cmd.exe', @cmd) == 0 or die;
chomp(my $cmd = `cygpath 'C:\\Windows\\System32\\cmd.exe'`);
system($cmd, @cmd) == 0 or die;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.