【问题标题】:How to find where windows is installed using batch file如何使用批处理文件查找 Windows 的安装位置
【发布时间】:2016-09-08 13:17:02
【问题描述】:

有没有办法创建一个简单的批处理文件来查找安装 Windows 的驱动器?

【问题讨论】:

  • 为什么要知道windows安装在哪里?
  • 它用于修复启动问题的脚本,当您遇到启动问题时应该可以运行该脚本

标签: windows file batch-file


【解决方案1】:

在命令提示符或批处理文件中使用%SystemDrive%

echo %SystemDrive%

d:>%SystemDrive%
c:>

【讨论】:

  • +1,但是为什么批处理文件中的百分比加倍呢?仅当您希望 %SystemDrive% 作为字符串文字而不是变量值时才这样做。
  • @Squashman:哎呀。正在考虑使用%%i - 不知道为什么,反正做错了。已更正。
  • @dbenham:已更正。请参阅上面我对壁球手的评论。咖啡还不够。 :-)
【解决方案2】:

Ken White 有通过%SystemDrive% 获取系统驱动器的“正常”方式。但是通过设置您自己的值很容易破坏该变量。

应该“始终”适用于 XP 之后的任何 Win 版本的替代方法是使用:

for %%A in ("%__APPDIR__%") do echo %%~dA

当然,您可以将自己的 InstallDrive 变量设置为 %%~dA 的值。

%__APPDIR__% 变量是两个特殊的动态“变量”之一,它们始终报告正确的值,即使用户试图通过显式定义自己的同名变量来覆盖该值。但是,可以在 XP 上覆盖该值。有关动态变量 %__CD__%%__APPDIR__% 的更多信息,请参阅 Why can't I access a variable named __CD__ on Windows 7?

【讨论】:

    【解决方案3】:

    以防万一“找到驱动器”不仅仅意味着驱动器号:

    @Echo Off
    For /F "Tokens=2,5,6 Delims=\|" %%I In ('WMIC OS Get Name') Do Echo=%%I %%J %%K
    Timeout -1
    

    ...而且没有真正的原因:

    @Echo Off
    For /F "Tokens=2,5,6 Delims=\|" %%I In ('WMIC OS Get Name') Do (
        Set _di=%%I  %%K %%J )
    Set/A _dn=%_di:~-1%+1
    For /F "UseBackQ Tokens=2 Delims==" %%L In (`WMIC DiskDrive Where^
        "DeviceID Like '%%PHYSICALDRIVE%_dn%'" Get Model /Value`) Do Echo=%_di% %%L
    Timeout -1
    

    【讨论】:

      【解决方案4】:

      在 dos 命令提示符中键入 cd %windir%,然后按 Enter。 注意当前文件夹。这是安装 Windows 的文件夹。

      【讨论】:

        【解决方案5】:

        您实际上不需要批处理文件。只需按住 windows 键并按 R 打开一个小窗口,您可以在其中键入 %windir% 并按 Enter。

        将弹出一个 Windows 资源管理器窗口,显示 Windows 安装目录。您可以单击显示目录的栏(如浏览器的 URL 栏)以获取直接路径,包括任何父文件夹和驱动器号。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-20
          • 1970-01-01
          • 2016-04-09
          • 2017-03-03
          • 2018-09-30
          • 1970-01-01
          • 2013-10-05
          • 1970-01-01
          相关资源
          最近更新 更多