Windows cmd默认为F:drive

Windows cmd默认为F:drive,windows,cmd,Windows,Cmd,当我在笔记本电脑上打开cmd时,它默认为F:drive。这让我很不安,有人知道它是如何变成这样的吗?或者如何让它回到默认情况下打开到C:驱动器的位置?快速回答:cmd/k C: 要使其“自动化”,答案很长: 有时候,当你进入开始->运行,CMD时,你的路径会是什么 你不会想要的。在active directory或NT域中,有时 默认主路径可能是网络驱动器。这不太好,当 您处于脱机状态或联机后退出脱机状态。CMD提示符为 设置到一个你无法到达的地方 要更改路径,您可以编辑注册表(风险自负) W

当我在笔记本电脑上打开cmd时,它默认为F:drive。这让我很不安,有人知道它是如何变成这样的吗?或者如何让它回到默认情况下打开到C:驱动器的位置?

快速回答:cmd/k C:

要使其“自动化”,答案很长:

有时候,当你进入开始->运行,CMD时,你的路径会是什么 你不会想要的。在active directory或NT域中,有时 默认主路径可能是网络驱动器。这不太好,当 您处于脱机状态或联机后退出脱机状态。CMD提示符为 设置到一个你无法到达的地方

要更改路径,您可以编辑注册表(风险自负)

Windows注册表编辑器5.00版

[HKEY_CURRENT_UserSoftwareMocrosoftCommand Processor]“自动运行”=“c:”

这将更改c:驱动器的路径


我相信它的默认值是
%HOMEDRIVE%\%HOMEPATH%
,因此如果您可以随意处理这些环境变量,这可能是一个选项。我无法在我公司的网络上编辑这些环境变量,因此我必须使用来将其更改为正常状态。

如果您从快捷方式打开它,请更改快捷方式的工作目录。

除了其他答案外,还有一个很好的powertoy for XP,名为“此处打开命令窗口”当您在文件夹内单击以打开以该目录作为起始路径的命令窗口时,它会在右键单击上下文菜单中添加一个选项


我遇到了一个类似的问题,cmd总是在一个特定的目录中打开(运行调用cmd的脚本时很烦人)。处理此问题的最佳方法是编辑自动运行设置。Raymond Chen在这里有一篇很好的文章:

总结是,当您启动命令shell时,它会检查自动运行注册表项,并执行其中存储的命令。它检查的注册表项是:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
    and/or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

非常小的缺点:如果你使用的是Windows7,你不需要CmdherePowerToy,它内置在浏览器中

您只需在Windows资源管理器中导航到一个目录,然后按住shift键并右键单击即可。“此处打开命令窗口”是上下文菜单上的选项之一

在打开特定目录中的cmd.exe时,我只需创建cmd.exe的快捷方式,然后在快捷方式属性中,将“起始位置:”设置为要在其中启动的驱动器/目录


通过使用快捷方式,我可以根据使用它的目的自定义cmd.exe窗口。对于正常的文件编辑/查看,我使用180x60窗口和适当的字体,但当我想要读取/搜索日志文件时,我有一个快捷方式,可以打开一个字体较小的260x100窗口。这样,我可以查看大多数长日志文件行,而不必使用水平滚动。

在RegEdit.exe中,我创建了一个字符串:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
我用于自动运行的值是“D:”

使用命令

C:
更改为驱动器C。这当然适用于任何驱动器号。

  • 在开始屏幕/菜单上,键入“cmd”,右键单击它并选择“打开文件-位置”
  • 在打开的窗口中,右键单击“命令提示符”图标,选择“属性”,然后将“起始位置”属性编辑到所需路径。我以“C:\”为例

    • 一些答案已经提到自动运行是一种解决方案。
      但这可能非常危险,因为自动运行条目将针对任何新的cmd.exe实例执行(只有管道会忽略自动运行)

      失败的简单示例:

      cd /d E:\myPath
      FOR /F "delims=" %%Q in ('dir') do echo - %%Q
      
      使用
      AutoRun=C:
      ,这将显示驱动器当前路径的内容
      C:


      您仍然可以使用AutoRun,但它应该是一个批处理脚本,用于检查它是通过
      FOR/F
      还是通过拖放来调用interactive

      @echo off
      REM *** To enable this script, call it by <scriptName> --install
      
      setlocal EnableDelayedExpansion
      REM *** ALWAYS make a copy of the complete CMDCMDLINE, else you destroy the original!!!
      set "_ccl_=!cmdcmdline!"
      
      REM *** The check is necessary to distinguish between a new cmd.exe instance for a user or for a "FOR /F" sub-command
      if "!_ccl_:~1,-2!" == "!comspec!" (
          REM ***** INTERACTIVE ****
      
          REM *** %1 contains only data, when the script itself was called from the command line
          if "%~1" NEQ "" (
              goto :direct_call
          )
      
          endlocal
          doskey /macrofile="%~dp0\cmdMacros.mac"
          echo ********************************************************************
          echo * AutoRun executed from "%~f0"
          echo * Macros loaded from "%~dp0\cmdMacros.mac"
          echo ********************************************************************
          cd /d C:\myPath
      ) ELSE (
          REM *** Called by a FOR command, by an explorer click or a drag & drop operation
          REM *** Handle PROBLEMATIC Drag&Drop content, if necessary
          endlocal
      )
      exit /b
      
      
      :direct_call
      if "%~1" == "--install" (
          reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v "AutoRun" /t REG_SZ /d "%~f0"
          exit /b
      ) 
      
      if "%~1" == "--show" (  
          reg query "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun
          exit /b
      )
      
      if "%~1" == "--remove" (
          reg DELETE "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /f
      )
      exit /b
      
      @echo关闭
      REM***要启用此脚本,请通过--install调用它
      setlocal EnableDelayedExpansion
      REM***始终复制完整的CMDLINE,否则会破坏原始版本!!!
      设置“\u ccl=!cmdline!”
      REM***该检查对于区分用户的新cmd.exe实例或“for/F”子命令是必要的
      如果“!\u ccl:~1,-2!”==“!comspec!”(
      REM******交互式****
      当从命令行调用脚本本身时,REM***%1仅包含数据
      如果“%~1”NEQ”(
      后藤:直拨电话
      )
      端部
      doskey/macrofile=“%~dp0\cmdMacros.mac”
      回音********************************************************************
      echo*从“%~f0”自动运行
      echo*从“%~dp0\cmdMacros.mac”加载的宏
      回音********************************************************************
      cd/d C:\myPath
      )否则(
      REM***由FOR命令、资源管理器单击或拖放操作调用
      REM***必要时处理有问题的拖放内容
      端部
      )
      退出/b
      :直拨电话
      如果“%~1”==“--安装”(
      reg添加“HKEY_当前用户\软件\微软\命令处理器”/v“自动运行”/t reg_SZ/d“%~f0”
      退出/b
      ) 
      如果“%~1”==”--show”(
      reg query“HKEY\U CURRENT\U USER\Software\Microsoft\Command Processor”/v自动运行
      退出/b
      )
      如果“%~1”==“--删除”(
      reg DELETE“HKEY\U CURRENT\U USER\Software\Microsoft\Command Processor”/v自动运行/f
      )
      退出/b
      
      我喜欢ceejayoz的回答,bot OwenP的回答似乎正好反映了我自己的情况。他的回答也让我想到了1。%HOMEDRIVE%\%HOMEPATH%是如何造成我的问题1的。以及自动运行注册表项如何解决我的问题。感谢所有回答的人。这与编程有什么关系?更改%HOMEDRIVE%可能会产生意想不到的效果。这很酷。我想知道为什么我必须按住shift键。虽然这确实会更改目录,但它没有回答如何更改默认目录中的op问题这是非常危险的!它会中断所有的
      FOR/F()
      循环,它们还会启动自动运行命令,因此会临时更改驱动器。这非常危险!它为/F()中断所有
      lo