"\ Program Files (x86) \ Apache Software Foundation \ Apache2.2"디렉토리가 Windows 2008 시스템의 로컬 드라이브에 있는지 확인하는 방법을 알아 내려고합니다. 로컬 드라이브에서 디렉토리가 있는지 어떻게 검색합니까?
는 나는 이런 식으로 뭔가있을 거라고 생각 :for /f "skip=2 tokens=2 delims=," %%A in (
'wmic logicaldisk get name /format:csv'
) DO (
echo %%A
IF EXIST "%%A\Program Files (x86)\Apache Software Foundation\Apache2.2" (
echo FOUND ON %%A
)
)
그러나 그것은 단순히 드라이브 문자를 메아리.
저는이 특정 프로젝트에 대해 Windows 환경에 갇혀있는 유닉스 사용자입니다. 제발 도와주세요!
나는 여기가 해결 한 방법은, 동료의 도움을 얻었다 : 도움을
SET FOUNDIT=FALSE
SET ERRORLEVEL=
FOR /F "skip=2 tokens=2 usebackq delims=," %%i IN (
`wmic logicaldisk where "drivetype=3" get name^,size /format:csv`
) DO (
if /i "%foundit%" equ "true" exit /b
CALL :APACHE %%i
if %ERRORLEVEL% equ 0 set FOUNDIT=TRUE
)
IF %FOUNDIT% equ "TRUE" exit /B ELSE exit /B 1
:APACHE
set DRIVE=%1
REM echo DRIVE is %DRIVE%
if "%DRIVE%" equ "" exit /B
set APACHEPATH=%DRIVE%\Program Files (x86)\Apache Software Foundation\Apache2.2
IF EXIST "%APACHEPATH%" CALL :FOUNDIT "%APACHEPATH%"
exit /B
:FOUNDIT
echo FOUND APACHE on %1
for /f "tokens=*" %%x in (%1) do set APACHEINSTALLDIR=%%x
set FOUNDIT=TRUE
exit /B
감사합니다!
경로,' "%% \ Program 파일 (x 86) \ 아파치 따옴표로 묶어야합니다 Software Foundation \ Apache2.2 "' – admdrew
IF EXIST 파일 경로를 따옴표로 묶는 코드를 방금 업데이트했지만 IF EXISTS가 존재하는 디렉토리를 찾지 못하는 경우 %% A 만 표시됩니다. –
'echo %% A' 대신'echo-%% A-'라고 쓰고 대격변을 봅니다 ... 더 명확하게 보려면'echo off'를 제거하십시오. – Stephan