zoukankan      html  css  js  c++  java
  • Windows批处理更改当前工作路径

    这几天由于工作需要在研究批处理添加系统定时任务,由于本人用的是WIN7系统,由工作路径产生了一些问题,不知道XP是不是也有这个问题,首先,来做个试验。

    在我的D盘Test目录下有两个文件,一个test.txt,一个test.bat,如下图所示:

    test.bat内容如下:

    @echo off  

    color 0a  

    echo %CD%  

    notepad test.txt  

    目的很简单,就是想通过批处理test.bat打开test.txt文件。

    1、直接双击test.bat,一切正常,test.txt如我所愿被打开了,并且输出了当前工作路径D:/Test。

    2、右击test.bat,选择以“管理员身份运行”,这时现象出来了,屏幕输出当前工作路径是C:/Windows/System32,也就是cmd.exe的路径,并用test.txt也没有被打开。

    好,问题出来了,就是当前工作路径在作怪。

    要解决这个问题,首先要获取当前test.bat的路径,代码如下:

    set base_dir=%~dp0  

    %base_dir:~0,2%  

    这时,%base_dir%已经存储了当前test.bat的绝对路径了,接下来就是要将运行时的当前工作路径更换为%base_dir%就行了,代码如下:

    pushd %base_dir%  

    notepad test.txt  

    popd  

    这样修改之后test.bat的总体代码如下:

    @echo off  

    color 0a  

    set base_dir=%~dp0  

    %base_dir:~0,2%  

    pushd %base_dir%  

    notepad test.txt  

    popd  

    pause  

    修改之后,无论是双击直接运行,还是右击选择“以管理员身份运行”,结果都会是一样的。

    系统定时任务在运行批处理文件时,当前的工作路径都会是C:/Windows/System32,因此,都得用这种方法改变一下当前工作路径。

    自己功力不够,各位有什么更好的招术不妨交流一下,^_^。

  • 相关阅读:
    JS使用readAsDataURL读取图像文件
    python20个骚操作
    HTML标签的for属性
    进程、线程、协程理解
    mysql 深度解析auto-increment自增列"Duliplicate key"问题
    2020年MySQL数据库面试题总结(50道题含答案解析)
    如何用Redis统计独立用户访问量
    Redis中的布隆过滤器及其应用
    redis系列教程以及面试题
    大厂面试爱问的「调度算法」,20 张图一举拿下
  • 原文地址:https://www.cnblogs.com/duanxz/p/2856663.html
Copyright © 2011-2022 走看看