【问题标题】:Batch Why Do Drive-Letters Become Uncapitalized批处理为什么驱动器字母变成非大写字母
【发布时间】:2016-04-06 21:17:16
【问题描述】:

在批量中,当我更改为大写的不同驱动器时,它会自动更正除驱动器号以外的所有内容的大写,当我要访问的新驱动器与我当前所在的驱动器相同时除外。像这样(这只是用于演示目的的示例):

C:\Windows\System32>cd /d a:\eXaMpLe

a:\Example>cd /d A:\

A:\>cd /d a:\

A:\>echo.%CD%&cd /d a:\&echo.%CD%
A:\
A:\

A:\>exit /b 0

那么,为什么驱动器号的大小写行为是这样的???

【问题讨论】:

  • 您使用的是哪个平台?
  • @aschipfl - [batch-file] 标签,根据其 StackOverflow 定义,意味着 Windows。并且发布的“代码”中的提示列出了C:\Windows\System32 文件夹。平台是什么不是很明显吗?
  • @The Pepper - 为什么重要?它没有功能影响,除非您执行区分大小写的字符串比较。但是 Windows 路径不区分大小写,因此所有路径字符串比较无论如何都应该不区分大小写。
  • @dbenham,其实我想知道 OP 使用的是哪个 Windows 版本...
  • @aschipfl - 据我所知,这种行为在至少从 XP 开始的所有 Windows 版本上都是正确的。

标签: batch-file directory cd capitalization drive-letter


【解决方案1】:

我不明白这有什么关系,但这种行为是我以前注意到的。

我不知道答案,但我可以做出有根据的猜测。

文件夹名称的大小写存储在卷的目录中,因此 CD 命令仅使用目录中的大小写,而忽略实际输入的内容。但我不认为卷号存储在卷的目录中,因此 CD 命令只是保留输入的驱动器号大小写。

【讨论】:

    【解决方案2】:

    我想驱动器号只存在没有定义大写。
    您只能看到 cd、<driveLetter>:、pushd 或 popd 命令的最后影响。

    这些命令仅在新目录与以前不同时才会影响目录!

    cd c:\
    cd c:\windows  - Affects the directory and therefore the drive letter case
    pushd C:\windows - doesn't affect the current directory
    cd ..
    popd - Affects the directory and therefore the drive letter case
    

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2013-11-19
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      相关资源
      最近更新 更多