[cmd] Command Line 筆記-遠端複製與壓縮
最近為了將的壓縮、解壓縮、遠端連線硬碟、複製貼上等等的繁瑣的事情寫成 bat 檔案,花了很多時間。 所以就來記錄一下,用 command line 自動化的功能。
- 刪除整個資料夾、刪除單一檔案
- 使用 msbuild 建立佈署檔案
- 複製遠端硬碟的檔案、複製貼上整個資夾並自動取代現有檔案
- 使用 PowerShell 壓縮與解壓縮檔案
- 檢查檔案是否存在,並且執行不同指令
刪除整個資料夾、刪除單一檔案
刪除整個資料夾1
2
3del /q "D:\Projects\Publish\Today_Deploy\*"
FOR /D %%p IN ("D:\Projects\Publish\Today_Deploy\*.*") DO rmdir "%%p" /s /q
rmdir "D:\Projects\Publish\Today_Deploy"
刪除單一檔案1
del D:\Projects\Publish\Today_Deploy\WebAPI\Web.config
使用 msbuild 建立佈署檔案
- bat
1 | "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\Projects\WebAPI\Project.WebAPI.sln" |
複製遠端硬碟的檔案、複製貼上整個資夾並自動取代現有檔案
因為佈署都會連到廠商的VM主機,而且桌面遠端連線那邊的設定,我 D 磁碟有開分享,所以可以從廠商的 VM 直接連到我這邊的 D 磁碟。 因為可以直接連到 D 磁碟,所以也可以用 command line 的方式來複製我要的檔案,只要使用 \\tsclient\d
就可以指定到我電腦的路徑 , \tsclient 是指我這邊的電腦,而 \d 表示我的 D 磁碟。1
XCOPY \\tsclient\d\Projects\Publish\Today_Deploy.zip D:\Project\ /Y
將我要佈署的整個資料夾含檔案,貼到主機上 server 的資料夾1
XCOPY D:\Project\Today_Deploy\WebAPI\* D:\Project\WebAPI /s /i /Y
使用 PowerShell 壓縮與解壓縮檔案
使用 PowerShell 壓縮或解壓縮檔案的話要先把 PowerShell 要執行的 script 先寫好,然後 command 呼叫 Powershell.exe
指定要執行的 script ,在設定一些執行參數就可以了。
壓縮
- ps1
- bat
1 | $source = "D:\Projects\Publish\Today_Deploy" |
解壓縮
- ps1
- bat
1 | Add-Type -AssemblyName System.IO.Compression.FileSystem |
檢查檔案是否存在,並且執行不同指令
command line 有檢查檔案是否存在的指令,若檔案不存在,可以用 goto: 的方式直接跳到要指定執行的指令。
如以下指令,會判斷 D:\Project\Today_Deploy.zip
是否存在,若不存在則跳到 :exit
的點去執行,所以 do something… 就不會執行到。1
2
3
4
5
6
7
8@rem check file exits or not
if not exist D:\Project\Today_Deploy.zip goto :exit
do something...
:exit
echo deployment file: D:\Project\Today_Deploy.zip not exists