2012-09-07 84 views
2

我試圖自動執行SVK同步過程。
配置SVK鏡子後,我寫了一個批處理文件有以下SVK同步和計劃任務

svk sync -a >> svk.log &2>1 

然後我補充下,我的管理帳戶運行Windows計劃任務。

在svk.log

我讀

的getpwuid函數在C的未實現:\ Programmi \ SVK \ BIN \ SVK 線142

任何提示?

p.s.我能夠在命令行(同一用戶)運行svn同步-a

回答

0

當我張貼了我的問題,我不知道

  1. 下Windows計劃的HOMEDRIVE和HOMEPATH不會被初始化(http://tinyurl.com/9zxbrg8)
  2. 的getpwuid功能不可用在Perl的Windows移植(http://tinyurl.com/d56a2mv)

具有上述,我修改/箱/ svk文件通過更改

$ENV{HOME} ||= (
    $ENV{HOMEDRIVE} ? catdir(@ENV{qw(HOMEDRIVE HOMEPATH)}) : '' 
) || (getpwuid($<))[7]; 
$ENV{USER} ||= (
    (defined &Win32::LoginName) ? Win32::LoginName() : '' 
) || $ENV{USERNAME} || (getpwuid($<))[0]; 

$ENV{HOME} ||= (
    $ENV{HOMEDRIVE} ? catdir(@ENV{qw(HOMEDRIVE HOMEPATH)}) : 
         ($ENV{USERPROFILE} ? $ENV{USERPROFILE} : '') 
); 
$ENV{USER} ||= (
    (defined &Win32::LoginName) ? Win32::LoginName() : '' 
) || $ENV{USERNAME}; 

,現在我能夠運行我的批處理調用SVK作爲Windows計劃任務