美文网首页
Windows 编写 bat 脚本自动cd 到指定目录

Windows 编写 bat 脚本自动cd 到指定目录

作者: Asbefore如初_3142 | 来源:发表于2018-11-23 14:20 被阅读0次

    记录一下编写的 cmd 命令

    在没有脚本的情况下,如果要在某个文件夹执行cmd命令,操作步骤是这样的

    打开文件夹 -> 复制文件夹路径 -> 打开cmd窗口 -> 输入 cd /d -> 右键粘贴 -> 回车

    通过编写脚本,可以提前配置好文件夹路径,之后就可以直接使用脚本进行文件夹切换,步骤变成这样

    打开cmd窗口 -> 输入脚本 ->回车


    因为没有cmd 脚本编写经验,所以就记录一下。免得以后忘了

    新建文件,把文件后缀改成 .bat

    关闭脚本每行的输出

    @echo off
    

    这样就不会每一行脚本都在窗口输出了

    变量

    1. 定义变量
    set var = this is value
    

    需要注意的是,用中文可能出现莫名其妙的错误。因为用不到中文,所以没有百度解决办法

    1. 获取变量
    echo %var%
    

    将打印出 var 的值

    1. 修改变量
    set var = this is value2  
    

    这样就会重置 var 的值

    如果需要将之前的值保留,并且在后面拼接新的值:

    set var = %var%+value2
    

    这样var的值是这样的:

    this is value+value2

    它将取得之前的值,然后再拼接新的值

    if 条件判断

    if "%var%" == "this is value" (
      echo "enter if..."
    )else(
      echo "else..."
    )
    

    需要注意的是 小括号 () 里面才是代码执行块,这和 常见的 python 或者java 不同,在 python 中,通过缩进来代表代码块,在java中,则是通过大括号{}表示代码块的
    而且在 () 前面,需要有一个空格,否则会提示语法错误

    获取命令行输入的命令

    以下面的命令行输入为例子
    cdto testdir childir

    通过%[index] 可以取得指定位置的参数,比如 %0 得到的是 cdto%1 得到的是 testdir

    获取命令行的输入后,可以配合 if 判断和 字符串拼接 修改指定的命令

    在bat 脚本中执行已经拼接好的命令

    通过if和字符串拼接,假设已经有了这样一个变量var,它的值是:cd /d F:testdir,现在自动cd到这个目录

    使用代码:

    cmd /k "%var%"
    

    窗口将会自动cd 到 F:testdir

    解释 /k 的作用

    通过cmd 执行完命令后,都会自动退出执行的环境。如果不加参数/k在cd到F盘后,又会回到当前执行目录。

    退出当前执行脚本的环境

    在执行脚本的时候,是使用了 cmd 命令的,它将会在一个新的窗口执行命令,尽管看上去在任务栏没有新的窗口出现。所以需要使用 exit 退出当前的执行窗口,代码应该是这样的:

    echo %var%
    
    cmd /k "%var%"
    
    exit
    

    把当前脚本配置到环境变量

    配置到环境变量后就可以在任意窗口执行这个命令了
    至于怎么配就略过了

    一个完整的演示代码

    现在创建一个 cdto.bat 文件
    文件内容如下

    @echo off
    
    
    set cmdto=cd /d 
    set test=D:
    
    if "%1" == "test" (
        set cmdto=%cmdto%%test%
    )
    
    
    echo %cmdto%
    
    cmd /k "%cmdto%"
    
    exit
    
    

    现在,在窗口执行 cdto.bat test ,就会到 D: 盘。效果图:

    20181123141746

    相关文章

      网友评论

          本文标题:Windows 编写 bat 脚本自动cd 到指定目录

          本文链接:https://www.haomeiwen.com/subject/scxjqqtx.html