[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、包管理器和插件架構。(項目已停止!)