Ruby 在 Windows 任务调度程序中的行为不同

标签 ruby windows scheduled-tasks

当从任务调度器运行时,Ruby 将无法识别目录。从 Windows 任务计划程序运行时,我遇到过与 ruby​​ 类似的问题。

谁能解释为什么当从 Windows 任务计划程序运行时 ruby​​ 会这样?

考虑我桌面上的以下目录

(d)test
----(d)One
----(d)Two
----(d)Three
----(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

请注意,我的目录一、二和三不再被视为目录。给了什么?

最佳答案

这完全是猜测,但 Windows 任务计划程序使用哪个用户运行脚本?由于该进程没有与我相同的权限,我依稀记得任务调度程序的问题。

关于Ruby 在 Windows 任务调度程序中的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251025/

相关文章:

ruby - 如何取消评估所需的 Ruby 文件? (又名顶级返回)

python - 理解字符串#succ

c# - 强制 WPF 应用程序在 Windows 启动时最大化

java - 在 Spring MVC 中调度任务

ruby - Rspec Rake 任务 : How to parse a parameter?

ruby-on-rails - factory_girl + rspec 似乎不会在每个示例后回滚更改

windows - 如何在特定界面下添加/删除组播组(Windows)

Windows 7驱动程序ioctl调用

Java EE 计划任务

powershell - 使用任务计划程序在重新启动后启动 PowerShell 脚本