Windows 编写 bat 脚本自动cd 到指定目录
记录一下编写的 cmd 命令
在没有脚本的情况下,如果要在某个文件夹执行cmd命令,操作步骤是这样的
打开文件夹 -> 复制文件夹路径 -> 打开cmd窗口 -> 输入 cd /d -> 右键粘贴 -> 回车
通过编写脚本,可以提前配置好文件夹路径,之后就可以直接使用脚本进行文件夹切换,步骤变成这样
打开cmd窗口 -> 输入脚本 ->回车
因为没有cmd 脚本编写经验,所以就记录一下。免得以后忘了
新建文件,把文件后缀改成 .bat
关闭脚本每行的输出
@echo off
这样就不会每一行脚本都在窗口输出了
变量
- 定义变量
set var = this is value
需要注意的是,用中文可能出现莫名其妙的错误。因为用不到中文,所以没有百度解决办法
- 获取变量
echo %var%
将打印出 var 的值
- 修改变量
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
20181123141746现在,在窗口执行
cdto.bat test
,就会到D:
盘。效果图: