这个原来在别的地方发过,但是后来发现有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保存退出命令行窗口时所在的目录,供下次打开时使用。

一进“dos”就自动进入上次的目录的更多相关文章

  1. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order

    如果在ECshop后台批量添加过大量类目的人都能体会到是多么的不方便(这点还是要说一下ECshop的产品经理,细节上还是要多注意),每次添加都需要在几百个类目里面找到要添加的父类目也是一个麻烦事,比如 ...

  2. PLSQL Developer如何设置自动打开上次编辑的文件

    作为开发人员经常把sql语句保存到文件中以方便下次继续使用,问题是plsqlDev重启后每次都需要手工打开这个文件,好不方便: 以下设置是plsqlDev启动后自动打开上次编辑的文件. 选择配置> ...

  3. Code::Blocks之自动打开上次未关闭工作空间

    问题:如何设置Code::Blocks,使每次打开软件时,自动打开上次未关闭的工作空间? 设置(S) -> 环境设置...(E) -> 常规设置: 勾选"在程序启动时" ...

  4. 如何取消android studio启动时自动打开上次关闭的项目

    Androidstudio默认每次android studio启动就会自动打开上次关闭的项目,如果想要取消并让它显示此界面 只需要  

  5. 【2017-06-29】在登录页面自动返回上次请求页面、Js获取table中的行数与列数

    一.在登录页面自动返回上次请求页面 Request.UrlReferrer比如 if (Request.UrlReferrer != null) { //如果能获取来路地址 Response.Redi ...

  6. svn自动update到指定目录

    对于开发和测试环境来说,可以使用svn自动update 到指定目录,这样就省去每次提交代码都要去服务器上手动update.对于团队来说,省时省力. 看下怎么做吧,在服务器svnserver安装 目录下 ...

  7. linux回退到上次访问目录

    cd / cd ..  回到上级目录 cd - 回到上次访问目录

  8. ssh自动输入密码脚本 切换目录脚本

    利用expect的,首先查看expect,命令:which expect #!/usr/bin/expect -f spawn ssh 用户名@ip地址 expect "assword:&q ...

  9. CentOS 创建SVN 服务器,并且自动同步到WEB 目录

    CentOS 创建SVN 服务器,并且自动同步到WEB 目录 标签: centossvnsubversion服务器 2013-12-06 10:09 5492人阅读 评论(0) 收藏 举报  分类: ...

随机推荐

  1. 《java常用设计模式之----单例模式》

    一.简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...

  2. 关于IDEA的一些快捷键操作

    shift+F6修改实体类中的属性会重构代码

  3. twitch游戏直播(【国外】平台)如何绑定二次验证码_虚拟MFA?

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 twitch游戏直播([国外]平台)如何绑定二次验证码_虚拟MFA? 二次验证码小程序于谷歌身份验证器APP的优势(更多见官网 ...

  4. OFDM通信系统的MATLAB仿真(2)

    关于OFDM系统的MATLAB仿真实现的第二篇随笔,在第一篇中,我们讨论的是信号经过AWGN信道的情况,只用添加固定噪声功率的高斯白噪声就好了.但在实际无线信道中,信道干扰常常是加性噪声.多径衰落的结 ...

  5. springboot(五)使用FastJson返回Json视图

    FastJson简介: fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件.它是目前json解析最快的开源组件没有之一!在这之前jaskJs ...

  6. 全卷积神经网络FCN详解(附带Tensorflow详解代码实现)

    一.导论 在图像语义分割领域,困扰了计算机科学家很多年的一个问题则是我们如何才能将我们感兴趣的对象和不感兴趣的对象分别分割开来呢?比如我们有一只小猫的图片,怎样才能够通过计算机自己对图像进行识别达到将 ...

  7. Spring boot 基础整理(一)

    环境准备 (1)JDK 环境必须是 1.8 及以上(2)后面要使用到 Maven 管理工具 3.2.5 及以上版本,所以会先介绍 Maven 的安装与配置(3)开发工具建议使用 IDEA,也可以 My ...

  8. 火车进栈(进出栈的模拟,dfs爆搜)

    这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头. 这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从 ...

  9. 破解东航的seriesid

    在查询东航航班的时候,请求数据中有个seriesid 调试js分析代码的过程就略过了,下面是整合的生成seriesid 的js代码 <script> function get_n(e, t ...

  10. python小题目汇总

    1.编程计算两个日期之间的天数与周数 Python时间处理---dateutil模块: dateutil模块主要有两个函数,parser和rrule. 其中parser是根据字符串解析成datetim ...