这个原来在别的地方发过,但是后来发现有bug,处理windows下带有空格的长文件夹会出错。因为原来那个帖子已经不能编辑了,所以修改后写在这里。

这里的“dos”,就是windows下的命令行窗口,所以加上引号。缺省是一打开就自动进入C:\Users\foo的目录,但是我常用的目录往往是别的。所以想,最好每次打开时都自动进入上次退出时所在的目录。

这个程序的另外一个功能就是实现键入cd - 时,进入上次的目录。(实际上我是先在网上找到这个cd - 的代码,在此基础上修改的。)

花了不少时间做这个程序,主要是dos批处理的功力太浅,不过dos批处理感觉也确实太坑爹。这个需求似乎是用dos批处理来做最合适,所以不得不硬着头皮做了出来,以后dos批处理能不碰就不碰。

程序包括3个文件。一个是注册表文件autorun.reg,内容是:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\code\\autoCmd\\autocmd.cmd"

一个是命令文件autocmd.cmd,代码是:

@echo off
if exist C:\code\autoCmd\oldFolder.txt (
for /f "delims=" %%i in (C:\code\autoCmd\oldFolder.txt) do (
set OLDPWD=%%i
goto BREAK1
)
:BREAK1
if exist "%OLDPWD%" (
cd /d "%OLDPWD%"
set OLDPWD="%CD%"
)
)
doskey cd=C:\code\autoCmd\cd2 $*

最后一个是dos批处理文件cd2.bat,代码是:

@echo off
if "%*"=="" cd & exit /b
if "%*"=="-" (
cd /d "%OLDPWD%"
echo %OLDPWD% >C:\code\autoCmd\oldFolder.txt
set OLDPWD="%cd%"
) else (
cd /d %*
if not errorlevel 1 (
set OLDPWD="%cd%"
for %%I in (.) do (
echo %%~fxI>C:\code\autoCmd\oldFolder.txt
)
doskey /history >C:\code\autoCmd\oldCmd.txt
)
)

其中最后一句doskey /history >C:\code\autoCmd\oldCmd.txt不是必须的,这里只是为了保存历史,以便以后分析整理。

使用时,先插入windows注册表,然后将所有文件放在一个目录下(如上面的c:\code\autoCmd),就可以了。oldFolder.txt保存退出命令行窗口时所在的目录,供下次打开时使用。

最新文章

  1. Easyui columns列图片移位问题!!!
  2. YII 的源码分析(-)
  3. 该字符串未被识别为有效的 DateTime
  4. Asp.net MVC 示例
  5. qt编程入门
  6. javascript特效实现(4)——当前时间和倒计时效果
  7. MVC View中获取Url参数的值
  8. oh-my-zsh配置你的zsh提高shell逼格终极选择
  9. ACM——圆柱体的表面积
  10. ARC和非ARC文件混编
  11. php的一些小笔记-文件函数(3)
  12. 转:web_custom_request 和 web_submit_data的差别
  13. 封装Echarts
  14. androidpn-server笔记及BUG修改
  15. Maven 学习总结 (二) 之 生命周期与插件
  16. Java-正则使用
  17. double free or corruption错误
  18. 20165337岳源 预备作业3:Linux安装及命令入门
  19. JavaWeb & Tomcat
  20. GUI_键盘事件

热门文章

  1. 关于虎信如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器?
  2. python txt装换成excel
  3. O、Θ、Ω、o、ω,别再傻傻分不清了!
  4. BUUCTF-web EasySearch (服务端包含注入ssi)
  5. shell 中的${},##, %% , :- ,:+, ? 的使用
  6. 自定义placeholder样式
  7. 你一个 F12 能秒我?
  8. 字典内置函数&方法
  9. Virtuoso 中 display.drf、techfile.tf、tech.db 之间的关系,以及 Packet 在它们之间的作用
  10. C/C++编程笔记:C语言制作情侣必备《爱情电子相册》,源码解析!