Ruby从任务调度程序运行时无法识别目录。从Windows任务调度程序运行时,我遇到过与ruby类似的问题。
有人可以解释为什么ruby在从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
请注意,我的目录One,Two和Three不再被视为目录。是什么给了什么?
答案 0 :(得分:0)
这是一个完整的猜测,但是用户运行脚本的Windows任务计划程序是什么用户?我模糊地记得任务调度程序的问题,因为该过程没有与我相同的权利星座。