这个原来在别的地方发过,但是后来发现有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="