Windows 如何在本地驱动器中搜索是否存在目录?
我试图找出如何确定Windows 2008计算机的任何本地驱动器上是否存在目录“\Program Files(x86)\Apache Software Foundation\Apache2.2” 我想应该是这样的:Windows 如何在本地驱动器中搜索是否存在目录?,windows,batch-file,Windows,Batch File,我试图找出如何确定Windows 2008计算机的任何本地驱动器上是否存在目录“\Program Files(x86)\Apache Software Foundation\Apache2.2” 我想应该是这样的: for /f "skip=2 tokens=2 delims=," %%A in ( 'wmic logicaldisk get name /format:csv' ) DO ( echo %%A IF EXIST "%%A\Program Files (x86)\Apac
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
)
)
但它只是呼应了驱动器号
我是一个Unix的家伙,因为这个特殊的项目而被困在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
谢谢你的帮助 wmic有一个丑陋的行为:它不能写入正确的换行符,因此如果使用最后一个标记,就会遇到问题 解决方法:不要使用最后一个令牌(或强制它添加另一个您不使用的令牌,此处为
size
)。由于您没有使用最后一个标记,因此它没有正确结束并不重要
for /F "skip=2 tokens=2 delims=," %A in ('wmic logicaldisk where "drivetype=3" get name^,size /format:csv') DO (
(你必须避开逗号)
我添加了
其中的“drivetype=3”
,因此它只会检查硬盘(没有CD/DVD/Flash),但您可以省去这一点。另一种方法比WMIC
方法更简单、更安全、更快:
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a: (
IF EXIST "%%a:\Program Files (x86)\Apache Software Foundation\Apache2.2\" (
echo FOUND ON [%%a:])))
带空格的路径需要用引号括起来,
“%%A\Program Files(x86)\Apache Software Foundation\Apache2.2”
我刚刚更新了代码,将IF-EXIST文件路径用引号括起来,但它只是回显了%%A,IF EXISTS找不到存在的目录。请编写echo-%%A-
而不是echo%%A
,然后查看目录。。。删除任何echo off
以更清晰地查看它。下载Cygwin并访问一个愉快的地方我不希望我可以直接下载Cygwin,但这支持整个公司的Windows服务器上的一些构建过程。更快?大概但它多次要求我“插入磁盘”。感谢您的输入,这对解决方案很有帮助。