[TOC]
# 设置环境变量
## `set`
这种语法只能在Cmd Shell环境中有效,关闭运行环境环境变量将不保存。
```
set PATH=%PATH%;D:\Program Files\
```
## `setx`
设置为永久环境变量,适用于bat中,使用`setx`设置为永久环境变量,适用于 bat 中:
```
setx PATH "%PATH%;D:\Program Files\"
```
1. 注意1.
某些情况下会出现“ setx 无效语法 默认选项不能超过’2’次”的错误,据信是因为原先的环境变量中存在空格导致的,可使用双引号进行避免。
2. 注意2.
设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
3. 注意3.
设置变量的长度超过1024,会截取多出的字符。
4. 注意4.
还可以操作远程计算机,具体参数设置百度一下setx用法。
5. 注意5.
设置某一变量的值,如果已经存在该变量会覆盖之前的值。所以正确方式是:要保存值=获取当前该变量的值+新值。
例如:
```
set oldValue=获取当前变量值
setx path %oldValue%;%newValue%
```
以下为获取用户环境变量path的值,该例子读取注册表内的值。
```
@echo off
set regPath= HKEY\_CURRENT\_USER\\Environment
set key=path
::判断是否存在该路径
reg query %regPath% /v %key% 1>nul 2>nul
if %ERRORLEVEL%==0 (
::取值
For /f "tokens=3,4 delims= " %%v in ('Reg Query %regPath% /v %key% ') do Set oldValue=%%v
) else Set oldValue=""
echo %key%的原值为:%oldValue%
pause
```
# cd 进入指定目录
windows 下 进入其他盘符的目录,一般直接 ` cd d:\download ` 没有效果,一般有两种方法:
* 先 `D:` 切换到指定盘符下,然后在`d:\download` 。
* `cd /d d:\download` 进入到指定 D盘符 的指定 download 目录。
# 借助 scoop
可以安装很多其他命令行工具
```
which
fd
bat
...
```
## UnxUtils
主页 :http://unxutils.sourceforge.net/
UnxUtils 是一个可以支持**在 Windows 下使用 linux 命令的工具**,用习惯了 linux 之后,感觉 Windows 的 dos 命令实在是太难用了,发现了这个工具,非常的小,装了它之后,把路径加入到环境变量中就支持常用的 linux 命令了。
# [Gow](https://github.com/bmatzelle/gow/releases)
```
scoop install gow
```
Gow是一个轻量级的Cygwin替代软件, 它能做的事情是给Liunx软件提供一个Windows系统上的运行环境。Gow是Gnu On Windows的缩写,它跟传统的具有相同功能的Cygwin软件比起来的特点是体积小,Cygwin动辄能达到上百种,而它的体积不到10MB,但里面却集成了Liunx环境下130多种实用工具软件,其中包括:
1. Shell 环境:bash, zsh
2. 压缩工具: gzip, zip, bzip2, compress
3. SSH软件: putty, psftp, pscp, pageant, plink
4. 上传/下载软件:cURL, wget
5. FTP工具: NcFTP
6. 文本编辑器: vim
7. 文字搜索/查看工具:grep, agrep, less, cat, tail, head
8. 文件系统操作命令: mv, cp, du, ls, pwd, rmdir, whereis
9. 开发工具:make, diff, diff3, sleep, cvs, dos2unix, unix2dos
## 参考
[Gow 0.8.0 发布,Cygwin 的替代品](http://www.linuxidc.com/Linux/2014-02/96723.htm)
## 其他相似项目
1. [GNU utilities for Win32](http://unxutils.sourceforge.net/)
Unix实用程序项目的鼻祖。自2003年以来就没有更新过。Gow最初从这些实用程序中借用了一些功能,但对其中的许多功能进行了更新,并添加了所有您所期望的安装程序的优点。
2. [GnuWin](http://gnuwin32.sourceforge.net/):一个有很多工具的优秀项目。如果你只是想要一个或两个实用程序,可以使用GnuWin,而不是Gow提供的“Cygwin”套件。它包含了常用的[tree](http://gnuwin32.sourceforge.net/packages/tree.htm)、其他一些命令等。
3. [MSYS](http://www.mingw.org/wiki/MSYS)
来自MinGW,众所周知,它是msysgit的基础(实际上,如果您的机器上有msysgit,那么您已经有了这些实用程序)。
4. [MSYS2](http://www.msys2.org/):MSYS2 is software distribution and a building platform for Windows. It provides a Unix-like environment, a command-line interface and a software repository making it easier to install, use, build and port software on Windows.
5. [UWIN](http://www2.research.att.com/~astopen/download/uwin/uwin.html):Software package created by David Korn at AT&T which allows programs written for the operating system Unix be built and run on Microsoft Windows
6. [babun](http://babun.github.io/)
一个基于cygwin的shell,带有oh-my-zsh、包管理器和插件架构。(项目已停止!)