用 Power shell 跳窗指定複製的資料夾
問題
目在開發階段,不同網站的樣式 ( Theme )資料夾,經常需要手動覆蓋,用Powershell 將其自動化。
作法
- 複製採用 windows 內建強大的 robocopy 指令。
- 預設資料夾目錄,透過 net framework 跳窗元件,仍可以選擇想要複製的資料夾目錄。
使用方式
- 對 create_desktop_workspace.ps1 右鍵,用 PowerShell 執行
- 選取要 copy 的 Theme Folder
- 腳本就會將指定資料夾的 Theme 複製到專案中
程式碼
Function Get-Folder($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.Description = "Select a folder"
$foldername.rootfolder = "MyComputer"
$foldername.SelectedPath = $initialDirectory
$foldername.ShowNewFolderButton = $false
if($foldername.ShowDialog() -eq "OK")
{
$folder += $foldername.SelectedPath
}else{
exit
}
return $folder
}
$defaultFolderName="Theme1"
$currentPath = (Get-Item .).FullName + '\Src\Web.Portal\' + $defaultFolderName ;
$desktopThemePath = Get-Folder($currentPath)
$pathArray = $desktopThemePath.Split("\")
$targetFolderName =$pathArray[$pathArray.length-1]
$desktopProjectSource="..\Portal\Portal\Portal.Web\Web"
robocopy $desktopThemePath $desktopProjectSource /E
pause