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