使用 Findstr 搜索驱动器号

使用 Findstr 搜索驱动器号

我尝试使用以下脚本来找到包含文件夹/文件的正确驱动器号(从驱动器 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命令做什么,如果你能解释一下,也许我可以帮助你将那些命令包含在脚本中,因为我不确定你想用它们做什么。)

相关内容