0%

batch-shortcuts

教你设置 batch-shortcuts

img

PATH 环境变量介绍

搬运自 知乎

PATH 环境变量

经常使用命令行工具的话,对PATH等环境变量应该会非常熟悉;但现今的日常开发,接触到这一概念的机会越来越少。

时不时还是会遇到小朋友问我:“什么是PATH?”

这里记录一下,以供参考。

什么是环境变量?

环境变量是操作系统提供给应用程序访问的简单 key / value字符串;windows/linux/mac都有同样的概念。

一般用于提供参数值给不同的应用程序。

什么是PATH变量?

我们从命令行想要运行一个程序的时候,待运行的程序往往不是在当前目录。

PATH变量就是用于保存可以搜索的目录路径,如果待运行的程序不在当前目录,操作系统便可以去依次搜索PATH变量变量中记录的目录,如果在这些目录中找到待运行的程序,操作系统便可以运行。

Go开发为例,但我们使用go install命令编译、安装go程序后,可执行文件是会被保存在$GOPATH/bin路径下;那么我们可以把这个路径加入PATH变量中,这样我们便可以在任意路径中运行go安装的程序。

GOPATH

GOPATH又是一个环境变量,用于保存go的主目录,go默认安装之后,GOPATH会是当前用户的主工作目录中的go子目录,即:%HOME/go

查看环境变量

假设我们要查看GOPATH这个环境变量的值:

  • windows command prompt: echo %GOPATH%
  • windows powershell: $env:GOPATH
  • linux & mac: echo $GOPATH

设置PATH变量

windows

假设我们当前登陆操作系统的用户名是:xiaomin

然后我们要把c:\users\xiaomin\go\bin路径加入到PATH变量中,在windows下我们可以在PowerShell中执行:

1
$env:Path += ";c:\users\xiaomin\go\bin"

注意,这样仅仅只是临时修改当前的PATH变量,当我们关闭、重开PowerShell时,就需要重新设置。

如果要永久的修改,需要使用管理员权限启动PowerShell,然后执行:

1
setx /M PATH "%PATH%;c:\users\xiaomin\go\bin"

Linux & Mac

同样假设我们当前登陆用户名是:xiaomin

然后我们要把/home/xiaomin/go/bin路径加入到PATH变量

1
export PATH=$PATH:/home/xiaomin/go/bin

这同样是临时修改,重开shell之后,会被重置;要永久改变的话,一般是将上面的命令加入到我们使用的shell初始化文件中。

以bash为例,那么就是将上述命令加到/home/xiaomin/.bash_profile文件中。


设置步骤

1. pathext

Windows上的另一个变量。这里存储可直接运行的文件类型,一般需要添加 .lnk 进去

2. 建立一个目录

建立: D:\bin\batch-shortcuts

D:\bin\ 路径又简洁又舒服

3. 把目录写入path

参照百度经验:windows10设置环境变量PATH

注意,设置完后,需要重启资源管理器和命令行来应用更改。

可以在任务管理器,选中资源管理器,选择重新启动

可以注销,然后登陆

可以重启

4. 然后就可以用了

怎么用?

在上面那个文件夹内的所有文件,都是命令行可以访问到的。

一般可以创建:.bat .lnk ,.exe也阔以哇

举个栗子:

1
2
文件名:batch-shortcuts.bat
explorer "D:\bin\batch-shortcuts"

模仿Linux ctrl d 一键关闭风格,创建的 d.bat

1
2
文件名:d.bat
exit

比如md5

1
2
文件名:md5.lnk
指向:"D:\Program Fies (Green)\WinMD5校验器.exe"

还有一些调用程序的,比如安装Ubuntu后,写一个脚本来调用Ubuntu执行命令

1
2
3
4
5
6
7
8
9
文件名:ubuntu.bat
@echo off

echo.
echo Usage:
echo use "ubuntu run $code$" to run shell command

echo.
"C:/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu16.04onWindows_2020.1604.14.0_x64__79rhkp1fndgsc/ubuntu1604.exe" %*

%* 是传递所有命令行参数,这个了解一下会有很大的帮助

如果不用这个,就得用 %1 %2 %3 %4 %5 %6 %7 %8 %9 ,而超过9的就不能再处理了

还有其他玩法,自己探索吧!


关于 D:\bin 文件夹

我一般把命令行调用的,编程语言类的,放在这里面,

(还有一些绿色IDE为代表的,可以一套带走的,我也放里面)

(还有DOS系统盘为代表的,系统级的底层的,我也放里面)

一方面是,这个路径他没有空格,不容易导致命令行调用出错。

第二是,他真的又简洁又舒服哇

列出一下目前为止我的 D:\bin 的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
D:\bin>dir
驱动器 D 中的卷没有标签。
卷的序列号是 9E68-267B

D:\bin 的目录

2020/05/25 16:24 <DIR> .
2020/05/25 16:24 <DIR> ..
2020/05/25 16:25 <DIR> .gradle
2020/03/17 20:23 <DIR> Anaconda3
2020/03/23 01:30 <DIR> Android_SDK
2020/06/05 10:42 <DIR> batch-shortcuts
2020/07/16 17:22 <DIR> DOS-16bit
2020/02/15 14:21 <DIR> eclipse-cpp
2020/02/15 14:18 <DIR> eclipse-java
2020/05/21 17:14 <DIR> ESP_8266
2019/07/01 00:43 <DIR> HBuilder.9.0.1.windows
2020/03/31 23:31 <DIR> HBuilderX.2.6.8.20200330.full
2020/04/21 01:06 <DIR> Java
2020/07/17 11:56 <DIR> nodejs
2019/11/28 13:53 <DIR> Perl
2020/03/18 23:53 <DIR> PortableApps
2020/02/19 23:47 <DIR> Python
2020/03/12 21:23 <DIR> Qt
2020/03/10 23:30 <DIR> Ruby27-x64
2020/03/23 21:16 <DIR> texlive
0 个文件 0 字节
20 个目录 57,676,476,416 可用字节

D:\bin>
坚持原创技术分享,您的支持将鼓励我继续创作!