2011-08-30 65 views
3

Ruby從任務調度程序運行時不會識別目錄。從Windows任務計劃程序運行時,我遇到了與ruby類似的問題。Ruby在Windows任務調度程序中的行爲不同

任何人都可以解釋爲什麼從Windows任務計劃程序運行時,紅寶石表現爲這種方式?

考慮我的桌面上的以下目錄

(d)測試
----(d)一個
----(d)兩個
----(d)三
----(F)dirs.rb
----(F)log.log

(d)=指南 (F)=文件

考慮下面的Ruby腳本。

require 'logger' 

log = Logger.new("C:/Users/crosson.Z7NETWORKS/Desktop/test/log.log", 'daily') 
log.level = Logger::INFO 

Dir.new("C:/Users/crosson.Z7NETWORKS/Desktop/test").each do |file| 
log.info "%7s a dir? %s" % [file, File.directory?(file)] 
end 

下面是從命令行運行時的日誌結果。

I, [2011-08-30T12:50:47.700617 #5356] INFO -- :  . a dir? true 
I, [2011-08-30T12:50:47.700617 #5356] INFO -- :  .. a dir? true 
I, [2011-08-30T12:50:47.700617 #5356] INFO -- : dirs.rb a dir? false 
I, [2011-08-30T12:50:47.700617 #5356] INFO -- : log.log a dir? false 
I, [2011-08-30T12:50:47.700617 #5356] INFO -- :  One a dir? true 
I, [2011-08-30T12:50:47.700617 #5356] INFO -- : Three a dir? true 
I, [2011-08-30T12:50:47.701617 #5356] INFO -- :  Two a dir? true 

下面是日誌的結果從任務調度

I, [2011-08-30T13:03:07.187316 #5972] INFO -- :  . a dir? true 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- :  .. a dir? true 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- : dirs.rb a dir? false 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- : log.log a dir? false 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- :  One a dir? false 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- : Three a dir? false 
I, [2011-08-30T13:03:07.188316 #5972] INFO -- :  Two a dir? false 

發現我的目錄,一,二和三是不再被視爲目錄中運行時。是什麼賦予了?

+0

我之前就這麼做過。當我嘗試抓取File.stat記錄器時,不會記錄任何內容。它就像File.stat方法被阻止在「。」以外的任何其他地方運行。和「..」。我試圖添加'File.stat(file).mtime'。它基本上只是跳過處理除當前目錄之外的所有內容「。」和上面的目錄「..」。 – Beaon

+0

我也剛剛嘗試更改我的用戶帳戶的權限以批處理方式登錄。問題仍然存在。 [鏈接](http://technet.microsoft.com/en-us/library/cc755659(WS.10).aspx) – Beaon

回答

0

這是一個完整的猜測,但用戶是Windows任務計劃程序用於運行腳本?我模糊地記得任務調度程序的問題,因爲這個過程與我沒有相同的權限集合。

+0

我想過。我曾嘗試以管理員身份和具有管理權限的用戶身份運行腳本。然而,感覺就像windows在運行腳本時使用權限和用戶帳戶搞笑一樣。 – Beaon

相關問題