perl 外部指令

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

perl 外部指令

文章kahn » 週四 12月 09, 2004 2:44 pm

小弟最近用perl 寫個for win32 的程式,因為是新手對程式沒什麼概念,請多包含.
其中有一段如下,功能是用perl 去執行外部指令(win98)利用rsync 同步c:\sk2 目錄到rsync server的 $myenv 目錄
但是現在的困難在於 perl 執行外部指令時無法讀取到在程式內部定義的變數 $myenv , 另外要如何用 perl 執行 win98的 set mydate=1234

system 'rsync -avz --delete --progress /cygdrive/c/sk2 username@192.168.10.10::public/$myenv';
頭像
kahn
活潑的高中生
活潑的高中生
 
文章: 350
註冊時間: 週三 9月 04, 2002 10:52 pm
來自: 彰化

re:perl 外部指令

文章kanru » 週四 12月 09, 2004 3:11 pm

要讓 perl 自動取代 $myenv 的值,請用雙引號如 system(" ");
網路上有許多 perl 的教學文件,建議妳可以去找一找 :)
如: http://perl.hcchien.org/
圖檔
頭像
kanru
榮譽學長
榮譽學長
 
文章: 578
註冊時間: 週六 7月 12, 2003 12:09 pm

re:perl 外部指令

文章kahn » 週四 12月 09, 2004 3:21 pm

謝啦! kanru兄
頭像
kahn
活潑的高中生
活潑的高中生
 
文章: 350
註冊時間: 週三 9月 04, 2002 10:52 pm
來自: 彰化

re:perl 外部指令

文章kahn » 週四 12月 09, 2004 4:46 pm

剛剛試一下
$myenv = 1234;
system (`rsync -avz --delete --progress /cygdrive/c/sk2 username@192.168.10.10::public/$myenv`);
結果是 $myenv 不會變成1234 會,但如果用雙引號 username@192.168.10.10 的路徑會錯誤
頭像
kahn
活潑的高中生
活潑的高中生
 
文章: 350
註冊時間: 週三 9月 04, 2002 10:52 pm
來自: 彰化

re:perl 外部指令

文章hata » 週四 12月 09, 2004 5:26 pm

username\@192.168.10.10

Perl 學習手札全文
\bye
頭像
hata
可愛的小學生
可愛的小學生
 
文章: 9
註冊時間: 週三 8月 20, 2003 8:43 pm
來自: third new tokyo city

re:perl 外部指令

文章kahn » 週四 12月 09, 2004 9:32 pm

system ("set Rsync_Password=123456");
無法設定 win98 的 set Rsync_Password=123456
perl 要執行外部(win98) 的path 跟 set 要怎樣作才正確呢?
頭像
kahn
活潑的高中生
活潑的高中生
 
文章: 350
註冊時間: 週三 9月 04, 2002 10:52 pm
來自: 彰化

re:perl 外部指令

文章訪客 » 週四 12月 09, 2004 10:46 pm

設定環境變數

$ENV{'Rsync_Password'}='12345';
試試看
訪客
 

re:perl 外部指令

文章kahn » 週四 12月 09, 2004 11:08 pm

在win98下 run
echo %Rsync_Password% 結果是.............
%Rsync_Password%

直接跑該程式(xxx.pl) 是OK的.
頭像
kahn
活潑的高中生
活潑的高中生
 
文章: 350
註冊時間: 週三 9月 04, 2002 10:52 pm
來自: 彰化


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客