문제

나는 디렉토리와 하위 폴더에서 각 루비 스크립트를 실행 해야하는 스크립트를 작업하고 있습니다.

예를 들어

run-all.rb
- scripts
  - folder1
    - script1.rb
    - script2.rb
  - folder2
    - script3.rb
    - script4.rb

서버는 Windows 서버이므로 일반적으로 배치 파일을 사용하지만 Head Dev는 일부 멤버가 Mac을 가지고 있으므로 Windows 배치 파일을 이해하지 못할 때 Ruby에서 모든 것을 수행해야한다고 주장합니다.

질문이 주어 졌을 때, 루비에 대한 나의 지식은 매우 기본적입니다.

도움이 되었습니까?

해결책

"런"이 의미하는 바에 따라 다릅니다. 동일한 루비 프로세스 내에서 각 스크립트에있는 코드를 실행하려면 다음과 같이합니다.

Dir["scripts/**/*.rb"].each{|s| load s }

그러나 각 스크립트 자체의 루비 프로세스에서 각 스크립트를 실행하고 싶습니다.

Dir["scripts/**/*.rb"].each{|s| puts `ruby #{s}` }

이 중 하나를 내용에 넣으십시오. run-all.rb 그리고 달리기 ruby run-all.rb 명령 줄을 형성하십시오.

다른 팁

이와 같은 것이 아마도 효과가 있어야합니다.

def process_directory(basedir)
puts basedir
Find.find(basedir.chomp) do |path|
    if FileTest.directory?(path)
        if File.basename(path)[0] == ?.
            Find.prune       # Don't look any further into this directory.
        else
            next
        end
    else
        puts path
    end
end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top