RSS

カテゴリー別アーカイブ: PowerShell

PowerShell: 配列の内容を指定通りに並べ替える。

JSON ファイルで指定した順番に配列の内容を入れ替えるサンプルです。

# alloc.json で指定された順序で配列を並び替える。
$alloc = get-content -raw alloc.json | ConvertFrom-Json
get-content alloc.json
$data = "ふぐ", "さば", "はぜ", "いわし", "あじ"
$data -join ","
$arr = new-object System.String[] 5

for ($i = 0; $i -lt $alloc.length; $i++) {
  $p = $alloc[$i]
  $arr[$p] = $data[$i]
}

$arr

実行例

allocarray

広告
 
コメントする

投稿者: : 2016/12/21 投稿先 PowerShell, 未分類

 

Windows 7 に PowerShell 4.0 をインストールするには

Windows 7 には Windows PowerShell 2.0 がインストールされていますが、これを PowerShell 4.0 にアップグレードできます。

ただ、わかりづらいのでこのメモを書きました。

まず、次の URL をブラウザで開きます。

https://www.microsoft.com/ja-jp/download/details.aspx?id=40855

次のような画面が表示されるので日本語を選んでダウンロードをクリックします。

PowerShell4ForWindows7

次のような画面が表示されます。下の画像でチェックされているものが Windows 7 の64ビット版用です。その下が32ビット用なので自分の環境に合わせてダウンロードします。

ダウンロードしたらそれをダブルクリックして起動します。

インストールが成功したら、Windows 7 の再起動が必要になります。

 

PowerShell4ForWindows7Choose

 
コメントする

投稿者: : 2015/12/23 投稿先 PowerShell

 

Windows PowerShell で C# などのソースのヘルプファイルを作るには

Sandcastle というツールでC# やVBなどのソースのヘルプファイルを作ることができます。

Sandcastle をインストールすると、PowerShell のスクリプト scbuild.ps1 も含まれていて、それを使うことにより、PowerShell でヘルプファイルを簡単に生成できます。

次のスクリプトはこの scbuild.ps1 を使いやすくするためのラッパーです。

(使用例)

PS C:\> sandcastle.ps1 c:\project1\bin\release\app1.exe c:\project1\bin\release\app1.xml c:\temp\help.chm


# Sandcastle を使ってWindowsヘルプ (*.chm) を作成する。
#  使い方
#    PS C:\> getchm.ps1 アセンブリのパス名 XMLファイルのパス名 出力先のパス名
#      $Args[0]  アセンブリのパス名 c:\project1\bin\release\app1.exe
#      $Args[1]  XMLファイルのパス名 c:\project1\bin\release\app1.xml
#      $Args[2]  出力先のパス名 (例) c:\temp\help.chm
#
If ($Args.Length -lt 3 ) {
  "パラメータが不足しています。"
  "使用法  PS C:\> sandcastle.ps1 アセンブリのパス名 XMLファイルのパス名 出力先のパス名"
  exit
}

# PATH に必要なコマンドのパスを追加する。
# TODO: $addpath1 はユーザの環境に応じて変更する。
$addpath1 = ";C:\Program Files (x86)\Sandcastle\ProductionTools;C:\Program Files (x86)\HTML Help Workshop"
If ($env:PATH.IndexOf($addpath1) -lt 0) {
  $env:PATH += $addpath1
  echo "PATH に $addpath1 を追加しました。"
}

# ヘルプファイルをビルドする。
scbuild.ps1 -BuildChm -sources $Args[0],$Args[1] -Style prototype -Name $Args[2]

" ... 終わり"

//

 
コメントする

投稿者: : 2015/08/02 投稿先 PowerShell

 

タグ: ,

Windows PowerShell で IIS Express を実行するには

要点
・IIS Express のフォルダに push-location コマンドレットで移動する。
・iisexpress.exe にウェブアプリのディレクトリ(フルパス)とポート番号をパラメータとして与え実行する。
・もし、Q コマンドで IIS Express を終了したら画面の色を元に戻す。
・カレントディレクトリを元に戻す。

#
#  IIS Express でウェブアプリを起動する。
#    args[0]: ウェブアプリのディレクトリ(フルパス)。
#
if ($args.Length -eq 0) {
  "ウェブアプリのディレクトリ(フルパス)を指定してください。"
  Exit
}

# IIS Express を起動する。
$p = $args[0]
push-location "C:\Program Files (x86)\IIS Express"
.\iisexpress.exe /path:$p /port:8080

# 標準の画面色に戻す。
(get-host).ui.rawui.backgroundcolor = "DarkMagenta"
(get-host).ui.rawui.foregroundcolor = "DarkYellow"

pop-location

*

 
コメントする

投稿者: : 2015/06/25 投稿先 PowerShell

 

タグ: ,

Windows PowerShell でコンソールの色を元に戻すには

一例として下のような関数を実行します。

function resetColor
{
  $Host.UI.RawUI.BackgroundColor = "DarkMagenta"
  $Host.UI.RawUI.ForegroundColor = "DarkYellow"
  cls
}
 
コメントする

投稿者: : 2015/06/07 投稿先 PowerShell

 

タグ:

Windows PowerShell でエラーメッセージの色を変えるには

Windows PowerShell のエラーメッセージは、文字の色が赤、背景色が黒ですが、これを変更したい場合は次のようにします。

(例) 文字の色を黄色、背景は変更なし(暗い青色)にする。
$host.privatedata.errorbackgroundcolor = “DarkMagenta”
$host.privatedata.errorforegroundcolor = “Yellow”

この例では、エラーが起こると下のように表示されます。

PowerShell_errormessage

 
コメントする

投稿者: : 2015/05/31 投稿先 PowerShell

 

タグ:

PowerShell で Visual Studio 2012 開発者用コマンドプロンプト

環境変数を設定すれば、コマンドプロンプトと同じようなコマンドが使えるようになるようです。

#
# VS2012 コマンドプロンプトの環境変数
#
if ($Env:FRAMEWORKVERSION -ne $null)
{
“Already set Env:*”
exit
}

# $Env:VS90COMNTOOLS=”C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\”
# $Env:VS100COMNTOOLS=”C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\”
# $Env:VS120COMNTOOLS=”C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\”
# $Env:INCLUDE_BASIC=”c:\temp”
$Env:WINDOWSSDKDIR=”C:\Program Files (x86)\Windows Kits\8.0\”
$Env:FRAMEWORK35VERSION=”v3.5″
$Env:VCINSTALLDIR=”C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\”
$Env:FRAMEWORKVERSION32=”v4.0.30319″
# $Env:PSMODULEPATH=”C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\AWS Tools\PowerShell\”
$Env:DEVENVDIR=”C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\”
$Env:FRAMEWORKVERSION=”v4.0.30319″
$Env:FRAMEWORKDIR=”C:\Windows\Microsoft.NET\Framework\”

$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools”
$Env:PATH=$Env:PATH + “;C:\Windows\Microsoft.NET\Framework\v4.0.30319”
$Env:PATH=$Env:PATH + “;C:\Windows\Microsoft.NET\Framework\v3.5”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\VCPackages”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\HTML Help Workshop”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Windows Kits\8.0\bin\x86”
$Env:PATH=$Env:PATH + “;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools”

“Set VS2012 Develop Env:*”

 
コメントする

投稿者: : 2015/05/30 投稿先 PowerShell

 

タグ: