2017-12-18 8 views
0

배치 스크립트를 사용하여 경로에 와일드 카드가있는 매개 변수가있는 -jar을 호출하려고합니다. 내가 수동으로 입력하면 나는이 같은 CMD에이 작업을 수행 할 수 있습니다 즉 배치 스크립트에서 작동하지 않는 이유 내가 아는경로에 와일드 카드가있는 일괄 스크립트의 매개 변수가있는 .jar 호출

for /d %a in ("C:\Program Files (x86)\Java\*") do "%~fa\bin\java.exe" -jar C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar C:\DTS\BMC\3.7.1\silent3.7.xml 

다음과 같이, 나는, '%'의를 추가로 추가해야합니다

for /d %%a in ("C:\Program Files (x86)\Java\*") do "%%~fa\bin\java.exe" -jar C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar C:\DTS\BMC\3.7.1\silent3.7.xml 

문제는 내가 시도 할 때 CMD 줄의 출력이 처음에 '/ d'의 d를 생략한다는 것입니다. 이것이 왜 필요한지, 내가 무엇을 바꾸어야하는지 확신 할 수 없습니다. 내가 수동으로 다음과 같이 시작, 내가 출력을 얻을 수 (하나의 '%'의 사용) 명령을 입력하면

for/%a in ("C:\Program Files (x86)\Java\*") do "%~fa\bin\java.exe" -jar C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar C:\DTS\BMC\3.7.1\silent3.7.xml 

:

C:\windows\system32>for /d %a in ("C:\Program Files (x86)\Java\*") do "%~fa\bin\java.exe" -jar C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar C:\DTS\BMC\3.7.1\silent3.7.xml 

C:\windows\system32>"C:\Program Files (x86)\Java\jre1.8.0_152\bin\java.exe" -jar C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar C:\DTS\BMC\3.7.1\silent3.7.xml 

[ Starting automated installation ] 
Read pack list from xml definition. 
Try to add to selection [Name: Base and Index: 0] 
Try to add to selection [Name: Standard and Index: 1] 
Try to remove from selection [Name: Optional Plugin - Greenplum and  Index: 2] 
Try to remove from selection [Name: Optional Plugin - WIKI table configurations 
+1

그러나 코드는 여전히 올바르게 실행되므로 문제가 무엇인지 확실하지 않습니다. – Squashman

+0

hm, 배치에서 실행할 때 실제로 명령을 실행하지 않고 그냥 마지막 행을 출력하고 진행합니다. – Banjomin

+0

배치 파일 내에 다른 것을 표시하지 않거나 실행을 올바르게 변경하지 않았다는 느낌이 들었습니다. 배치 파일에. 'FOR' 변수에 대한 백분율 기호를 두 배로 늘린 후에 배치 파일에서 실행하지 않으려면 거의 불가능합니다. – Squashman

답변

0

가 결국 포기 개정 된 스크립트의 출력은 다음과 같다 이 명령을 사용하여 powershell을 통해 작동하게 만들 수 있습니다.

start-process "C:\Program Files (x86)\Java\*\bin\java.exe" -Argumentlist '-jar', 'C:\DTS\BMC\3.7.1\squirrel-sql-3.7.1-standard.jar', 'C:\DTS\BMC\3.7.1\silent3.7.xml' 
+0

정말 사용하고 있다면 배치 파일 구문에 아무런 문제가 없습니다. (C : \ Program Files (x86) \ Java \ * ")에서"%% ~ fa \ bin \ java.exe "-jar C : \ DTS \ BMC \ 3.7.1 \ squirrel-sql-3.7.1-standard.jar C : \ DTS \ BMC \ 3.7.1 \ silent3.7.xml'에 있습니다. 당신이 powershell 코드로 이것을 대답한다면, 당신의 질문은 거의 무효화됩니다. 질문은 일괄 처리되고 대답은 powershell이기 때문에 삭제되어야합니다. – Squashman

+0

나는 이전의 코멘트에 답하고 내 질문에 출력을 추가했습니다. 내 일괄 처리 스크립트가 얼마나 유효한지에 관계없이 결과물은 작동하지 않는 것으로 나타납니다. – Banjomin