Ruby在windows任务调度器中的行为不同

Ruby在windows任务调度器中的行为不同,ruby,windows,scheduled-tasks,Ruby,Windows,Scheduled Tasks,从任务调度器运行时,Ruby无法识别目录。从windows任务调度器运行ruby时,我也遇到过类似的问题 有人能解释为什么ruby在从Windows任务调度器运行时会出现这种情况吗 请考虑我桌面上的以下目录 (d) 测试 ----(d) 一个 ----(d) 两个 ----(d) 三个 ----(f) 目录rb ----(f) log.log (d) =目录 (f) =文件 考虑下面的Ruby脚本 require 'logger' log = Logger.new("C:/Users/cros

从任务调度器运行时,Ruby无法识别目录。从windows任务调度器运行ruby时,我也遇到过类似的问题

有人能解释为什么ruby在从Windows任务调度器运行时会出现这种情况吗

请考虑我桌面上的以下目录

(d) 测试
----(d) 一个
----(d) 两个
----(d) 三个
----(f) 目录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

请注意,我的目录1、2和3不再被视为目录。给出了什么?

这是一个完全的猜测,但是Windows任务调度程序使用哪个用户来运行脚本?我隐约记得任务调度器的问题,因为该进程没有与我相同的权限组合。

我考虑过这个问题。我尝试以管理员和具有管理权限的用户的身份运行脚本。不过,在运行脚本时,感觉windows在权限和用户帐户方面做了一些有趣的事情。当我试图抓取File.stat记录器时,它不会记录任何东西。它类似于File.stat方法被阻止在“.”和“.”之外的任何对象上运行。我试图添加
文件.stat(File).mtime
。它基本上只是跳过了除当前目录“.”和上面目录“.”之外的所有处理。我还尝试更改我的用户帐户的权限以批量登录。但问题依然存在。