Ruby opfører sig forskelligt i Windows task scheduler

Indlæg af Hanne Mølgaard Plasc

Problem



Ruby vandt ikke genkendte mapper, når de løber fra opgaveplanlæggeren. Jeg har haft lignende problemer med rubin, når jeg kører fra Windows-task scheduleren.


Kan nogen forklare, hvorfor rubin opfører sig på denne måde, når de løber fra Windows Task Scheduler?


Overvej følgende mappe på mit skrivebord



  (D) test

  ---- (d) En

  ---- (d) To

  ---- (d) Tre

  ---- (f) dirs.rb

  ---- (f) log.log




(d)=Katalog
(f)=fil


Overvej følgende Ruby script.


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


Nedenfor er et resultat af logfilen, når du løber fra kommandolinjen.


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


Nedenfor er et resultat af loggen, når du løber fra opgaveplanlæggeren


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


Bemærk, at mine mapper, One, Two og Three ikke længere betragtes som mapper. Hvad giver?

Bedste reference


Dette er en komplet gætte, men hvilken bruger bruger Windows Task Scheduler til at køre scriptet? Jeg husker dårligt problemer med opgaveplanlæggeren på grund af at processen ikke har samme konstellation af rettigheder som mig.