2012-06-21 5 views
3

에 대한 루프에서 EXE 파일을 실행할 수 없습니다 나는 find_java.bat라는 배치 파일이 있습니다

@echo off 
for /f "delims=" %%a in ('C:\Programming\Android\android-sdk\tools\lib\find_java.exe') do (set java_exe=%%a) 

문제는 내가이 배치 파일을 실행할 때 내가 얻을 수 있습니다 :

'C:\Programming\Android\android-sdk\tools\lib\find_java.exe' is not recognized as an internal or external command, operable program or batch file. 

그러나 배치 파일은 포함되어있는 경우 :

@echo off 
C:\Programming\Android\android-sdk\tools\lib\find_java.exe 

그것은 잘 명령을 실행합니다.

내가 배치 파일을 작성하지만,이 일을해야 온라인 예제를보고 새로운 해요 ...

편집 : 이렇게 늦게이를 다시 방문 죄송합니다.

해결책을 찾았습니다. 그것은 아직도 이해가 안되는 이유로 ComSpec과 관련이 있습니다. 내 COMSPEC는 로그 아웃하고 다시와 마술이 일을 내가 레지스트리에 가서

C:\Windows\system32\cmd.exe 

%SystemRoot%\system32\cmd.exe; 

에서

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec 

을 변경

%SystemRoot%\system32\cmd.exe; 

했다 . 여기서 % SystemRoot %는 C했다 : \ WINDOWS, 다른 모든 시스템 변수를 사용하고,

@echo off 
for /f "delims=" %%a in ('"C:\Programming\Android\android-sdk\tools\lib\find_java.exe"') do (set java_exe=%%a) 

는 완벽하게 작동, 그래서 나는 솔직히 이해하지만 아마도 내가했던 것보다 더 이해하기 Command Line FOR /F Fails 표시되지 않습니다.

+0

그냥 추측 : 어쩌면 이중 슬래시? _'C : \\ 프로그래밍 \\ 안드로이드 \\ 안드로이드 - sdk \\ 도구 \\ lib \\ find_java.exe'_ – alfasin

답변

1

일반적으로 이러한 문제는 명령을 큰 따옴표로 묶으면 해결됩니다.

@echo off 
for /f "delims=" %%a in ('"C:\Programming\Android\android-sdk\tools\lib\find_java.exe"') do (set java_exe=%%a) 

하지만 따옴표가 필요한 명령은 표시되지 않습니다.

내가 작동하지 않는 이유를 모르지만 FOR/F 문이 새 CMD 셸에서 명령을 실행하려고 시도하고 있습니다.

다음 배치를 실행하고 확인을 실행하는지보십시오. 다음은 FOR 문이 실제로 실행하려고 시도하는 명령입니다.

@echo off 
%comspec% /c C:\Programming\Android\android-sdk\tools\lib\find_java.exe 

이렇게 실행되면 정상적으로 실행됩니다. 실패 할 경우 FOR/F 명령이 실패하는 이유를 진단하는데도 도움이됩니다.

+0

거의 한 달 후에 다시 방문하여 죄송합니다. 당신의 포스트는 잘 끝난 여정에서 나를 보냈습니다. 나는 귀하의 명령을 시도하고 괜찮 았는데, 그래서 포기하지만 70 Google은 나중에 다른 질문 (http://stackoverflow.com/questions/9668011/command-line-for-f-fails)을 읽는 즉시 검색합니다. 나는 그가 나에게 같은 문제가 있다는 것을 발견했다. 나는 비밀스런 따옴표를 찾을 수 없다는 것을 제외하고는. 그의 솔루션을 이해하지 못하기 때문에, 필자는 레지스트리에서 ComSpec을 이미 표시되고 로그 아웃 한 후 다시 변경하고 어떻게 든 작동했습니다. – eddiemundorapundo

0

이것이 도움이되는지 잘 모릅니다. 그러나 방금 샘플 코드를 시도했습니다. WinXP SP3 시스템에서 완벽하게 실행됩니다. 관리자 권한으로 배치 파일을 실행 해 보셨습니까?

+0

예, cmd를 "관리자 권한으로 실행"을 사용해 보았습니다.exe, 그리고 모든 사람들을위한 .bat 파일에 대한 모든 사용 권한을 설정해 보았습니다. – eddiemundorapundo

+0

"C : \ Programming \ Android \ android-sdk \ tools \ lib \"디렉토리를 추가 할 수도 있습니다. PATH 환경 변수를 변경 한 다음 'find_java.exe'와 같은 모양으로 변경하십시오. –