我尝试使用以下脚本来找到包含文件夹/文件的正确驱动器号(从驱动器 C 开始),但无法找到。请帮忙看看哪里出了问题。错误图片也附在附件中。谢谢。
@For /F "Delims=: " %%G In ('%SystemRoot%\System32\mountvol.exe ^| %SystemRoot%\System32\findstr.exe /IR "[C-Z]:\\"') Do @(
If Exist "%%G:\Sources\SxS\." (
%SystemRoot%\System32\Dism.exe /Online /Enable-Feature /FeatureName:"netfx3" /All /LimitAccess /Source:"%%G:\Sources\SxS" /NoRestart
)
)
echo %errorlevel%
If errorlevel 0 (echo Framework Updated) else (Echo No Source Files are Found)
Pause
答案1
@echo off
set mydrive=NOT_FOUND
for /f "skip=1" %%G in ('wmic logicaldisk get name') do (
if exist "%%G\Sources\SxS" set mydrive=%%G
)
echo drive is %mydrive%
答案2
您正在尝试列出所有磁盘,但mountvol
没有这样做。
您想要的命令是wmic
以下之一:
wmic logicaldisk get name
wmic logicaldisk get caption
答案3
我建议您使用这个简单的 FOR 循环。
for %%G in ( 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 /i exist ”%%G:\sources\sxs\.” (
rem your command
goto :success
)
)
:success
rem ^^^ remember to add a success label to exit the loop when the letter is found
rem your post-loop commands
希望这能有所帮助!(另外,我不明白你想用echo %errorlevel%
和if %errorlevel%==0
命令做什么,如果你能解释一下,也许我可以帮助你将那些命令包含在脚本中,因为我不确定你想用它们做什么。)