일부 소프트웨어를 원격으로 배포하려고하는데이 과정을 돕기위한 몇 가지 일괄 처리 스크립트가 있습니다. 제 프로세스의 기본은 scriptA
이 통과하는 텍스트 목록을 가지고, scriptA
은 대상 파일 (목록에서 검색)에 필요한 파일을 복사하고 ScriptB
을 실행합니다. 이 이론은 ScriptB가 시작하자마자 목록의 다음 PC로 이동하고 계속 진행하기 전에 ScriptB가 끝날 때까지 기다리지 않는다는 이론입니다. 내가 가진 것의 기본은 다음과 같습니다 :스크립트를 시작하고 다른 스크립트를 시작하기 위해 이동
ScriptA
:
Set /P List= Please enter the list name
Set /P Name= Please enter your username
FOR /F %%A IN (%LIST%) DO (
MKDIR \\%%A\C$\Temp\Install
XCOPY "\\share\necessary files" "\\%%A\C$\Temp\Install"
PSEXEC \\%%A -u DOMAIN\%NAME% -e "\\%%A\C$\Temp\Install\scriptB.bat"
)
ScriptB
는 설치 프로그램을 실행하고 자체 후 정리합니다.
내가 말했듯이, 목표는 일단 scriptA
이 파일을 덮어 쓰고 작업을 시작하면 목록의 다음 PC로 이동한다는 것입니다. 나는 모든 것이 작동하고 있음을 확인했습니다. 위의 의사 코드에서 작동하지 않는 무작위적인 것들은 무시하십시오. 계속 진행하기 전에 설치가 끝날 때까지 기다리기 때문에 영원히 걸립니다.
편집 :
잘못된 파일을 복사 한 것으로 나타났습니다. 원래 'install.bat'로 나열된 것은 scriptB 여야합니다. 사과 드리며, 문제를 설명하는 데 어려움을 겪고있는 상황에서 내 질문을 해결하기가 매우 어려웠습니다.
START PSECEC \\%%A -u DOMAIN\%NAME% -e "\\%%A\C$\Temp\Install\ScriptB.bat"
그것은 새 창에서 ScriptB을 시작했다,하지만 난 정말 마지막으로 가지고 노력하고있어 :
스크립 : 요청에 따라
, 여기에 내가 시작을 사용하던 방법입니다 제품은 다음과 같습니다
- 스크립은 PC 이름의 목록에 대한 프롬프트를 얻을 수
- 스크립는 이달를 통해 목록 복사에서 이름을 가져옵니다 scriptB를 포함하여 네트워크 공유의 모든 파일을 \ temp \ install에 넣습니다.
- scriptA 방금 파일을 복사 한 PC에서 scriptB가 시작됩니다.
- scriptB가 실행되는 동안 scriptA가 계속 실행되어 목록의 다음 PC로 파일을 복사하고 전체 PC 목록이 완료 될 때까지 스크립트 B 다음 스크립트 사본을 실행합니다 (
- ).
이 내용이 명확하게 도움이되기를 바랍니다. 다시 한 번 혼란을 드려 죄송합니다. 위에서 언급 한 모든 단계가 희망대로 작동합니다. 작동하지 않는 유일한 방법은 scriptA를 가져올 수 없다는 것입니다. scriptA를 일시 중지하지 않고 B를 시작합니다 .A는 scriptB를 기다리고, 내가 갖고 싶습니다. 그런 일이 기다리지 않고 계속 진행된다는 것입니다 (하루가 끝날 때이 스크립트를 시작할 수 있고 밤에는 PC 목록을 완료 할 때까지 설치를 계속할 수 있습니다).
도움을 주셔서 다시 한 번 감사드립니다!
답장을 보내 주셔서 감사합니다. 불행히도, 이것이 내가 원하는 것만은 아닙니다. 이것에 대한 나의 생각은 내가 떠나기 전과 떠난 후에 야간에 실행되는이 스크립트를 시작하고 모든 사람이 멀리있는 동안 스크립트를 실행하도록하는 것입니다. 시작 명령을 추가하고 다른 프로세스를 시작할 수 있도록 허용했지만 일단 새 CMD 창을 열면 원본이 일시 중지되었습니다. ScriptA를 일시 중지하지 않고 scriptB를 시작하는 방법에 대한 아이디어가 있습니까? – TheLegNBass
@ TheLegNBass 방금 'START' 명령을 테스트했으며 두 번째 스크립트를 실행하는 동안 호출하는 스크립트를 일시 중지하지 않았습니다. 어쩌면 일부 'ECHO'로 디버깅을하고 어떤 명령이 진행하기 전에 다른 스크립트가 끝나기를 기다리는 지 확인할 수 있습니까? 아니면 한 번에 하나의 'PSEXEC'명령 만있을 수 있습니까? – Laf
나는 그것을 알아낼 수 있었다. 내가 문제를 해결할 때부터 간과 할 수없는 일시적인 일이 멈추었습니다. 나는 지금 그것을 고쳤다. 그리고 그것은 일하고있다. 당신의 도움을 주셔서 감사합니다! – TheLegNBass