다음과 같은 디렉토리 구조가 있습니다.루비 보석을 만들기위한 배치 스크립트
build
-build.bat
package
-gems
-abc.gem
-xyz.gem
-install.sh
plugins
-abc
-abc.gemspec
-xyz
-xyz.gemspec
빌드 파일에 배치 파일 build.bat를 쓰려고합니다. 가 수행해야하는 작업은 다음과 같습니다
- 패키지에서 이전 파일을 삭제/보석 플러그인 폴더의 각 하위 디렉토리 내부
- 폴더,
- 이동 패키지로 만든 보석 파일/보석 내가 배치 프로그래밍 구문을 통과 한
gem build *.gemspec
이 명령은 보석을 만들 것입니다 실행 동일한 디렉토리에있는 파일.
폴더, 그리고 난이 배치 스크립트 여부에 의해 달성 될 수 있는지 여부도 확실하지 않다. 이 작업을 수행 할 배치 스크립트를 작성하려면 어떻게해야합니까?
[편집]
몇 가지 기본적인 연구 후 나는 많은 일들을 수행 할 수 있었다.@echo on
cd..
set CUR_DIR=%cd%
set GEMS_DIR=%CUR_DIR%\Package\gems
set PLUGINS_DIR=%CUR_DIR%\Plugins
del /f/s/q/a %GEMS_DIR%\
cd %PLUGINS_DIR%
for /d %%D in (*) do (
pushd %%~fD
gem build *.gemspec
move *.gem %GEMS_DIR%
popd
)
그러나 move 명령은 .gem 및 .gemspec 파일을 모두 복사합니다. .gem 파일 만 이동하려면 어떻게 제한합니까? 또한 마지막 괄호 뒤에 추가 된 행은 실행되지 않습니다. 기타 개선 사항을 알려드립니다. 고맙습니다.
[Edit2가]
내가 FOOR 루프 후에 첨가하는 라인이 실행되지 않고 있었다. gem 명령의 앞부분에 call
을 추가하면 모든 것이 정상적으로 작동합니다.
이것은 매우 쉽게 수행 할 수 있습니다 - 그리고 아주 쉽게. 그러나이 사이트는 무료 코드 작성 서비스는 아닙니다. 'edit' 기능을 사용하여 게시물로 문제를 푸는 시도를 편집하십시오. 그러면 문제가 발생하면 작동 상태로 만들려고 시도 할 수 있습니다. – Magoo
@Magoo 일괄 스크립팅에 대한 내 연구를하는 동기를 가져 주셔서 감사합니다. 귀하의 프로필에서이 라인을 좋아했습니다 - '나는 멍청하고 분명한 문제조차도 신경 쓰지 않습니다. 내 회색 물질의 남은 부분을 응고시키지 마라. ' –
마지막 괄호 뒤의 줄? 넬슨이 말했듯이 "나는 어떤 선도 보지 못했다 ..." – Magoo