読者です 読者をやめる 読者になる 読者になる

Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Windows Powershell】スクリプトのコマンドライン引数の数を得る

スクリプトを起動時にコマンドラインで与える引数の数を得るには、自動変数$argsを使用する。 hikisu1.ps1という以下のような1行だけのファイルを作成する。 $args.Length スクリプトを実行した結果は以下のとおり。 PS > .\hikisu1.ps10PS > .\hikisu1.ps1 …

【Windows Powershell】文字列の連結

文字列の連結には、演算子+を使用する。以下、例。 PS > $a = "ABC"PS > $b = "DEF"PS > $c = " GHI"PS > $d = $a + $b + $cPS > $dABCDEF GHIPS > $e = $a + "@" + $bPS > $eABC@DEF

【Windows PowerShell】特定のファイル名を指定かつ除外した、ファイルとフォルダーの一覧を表示する

ファイルとフォルダーの一覧を表示するにはGet-ChildItemコマンドレットを使用する。共通パラメーター-pathを使うことで(省略可能)表示するファイルを指定することができる。なお、MS-DOS風にdirというエイリアスが初期状態で設定されておりdirで代用可能…

【Windows PowerShell】パス+ファイル名からなる文字列からパスを取り除く

-replace演算子を使用して正規表現を用いた文字列の置換をすればよい。以下、例。 PS > $fullpath = "C:\abc\efg\hij.klm.nop.qrs"PS > $fullpathC:\abc\efg\hij.klm.nop.qrsPS > $fullpath -replace "^.+\\", ""hij.klm.nop.qrsPS > $st = $fullpath -repla…

【Windows PowerShell】ファイル名からなる文字列から、1つもしくは複数の拡張子を取り除く

-replace演算子を使用して正規表現を用いた文字列の置換をすればよい。以下、例。 PS > $filename = "hij.klm.nop.qrs"PS > $filenamehij.klm.nop.qrsPS > $filename -replace "\.[^.]+$", ""hij.klm.nopPS > $filename -replace "\..+$", ""hijPS > $st = $…

【Windows PowerShell】ファイル名やフォルダー名にスペース(半角空白)が含まれるコマンドを実行する

ファイル名やフォルダー名にスペース(半角空白)が含まれるコマンドを実行するには、実行演算子&(アンパサンド)と’(シングルクォーテーション)を使用する。 以下は、インターネットエクスプローラー(Internet Explorer)をPowerShellから実行する例。…

【Windows PowerShell】配列に要素を追加する

演算子「+」を使って代入すればよい。「+=」も使える。 PS > $ary = 1, "A"PS > $ary1APS > $ary = $ary, 2PS > $ary1A2PS > $ary += "B"PS > $ary1A2B

【Windows PowerShell】配列を作成する

要素をカンマ(,)で区切り、代入演算子「=」で変数に代入すればよい。 PS > $ary = 1, 2, 3, "A", "B", 4PS > $ary123AB4 なお、カンマで区切りを明示しないと配列としては作成されない。以下の例では、最初に文字列として認識され、文字列の結合になって…

【Windows PowerShell】使用しているWindowsが64ビットWindowsか32ビットWindowsかの判定

現在使用しているWindowsが64ビットウィンドウズか32ビットウィンドウズかを調べるには、Win32_OperatingsystemクラスのOSArchitectureプロパティの値を見ればよい。 64ビットOSの場合。 PS > $os = Get-WmiObject -Class Win32_OperatingSystemPS > $os.OSa…

【Windows PowerShell】ファイルやディレクトリの存在を確認する

Test-Pathコマンドレットを使用すればよい。ファイルとディレクトリの違いの判定もできる。 ファイルかディレクトリ(フォルダー)の違いには-PathTypeパラメーターを使う。-PathTypeパラメーターにleafを付けるとファイルを、containerを付けるとディレクト…

【Windows PowerShell】CPUが64ビットWindowsをサポートしているか否かの確認

そのコンピューターのCPUが64ビットWindowsが使えるかどうか、Windows PowerShellのスクリプトで確認をすることができる。 Win32_ProcessクラスのDescriptionプロパティの値を見ればよい。64ビットWindowsをサポートしているコンピューターであれば、「Intel…

【PowerShell】環境変数を確認する

以下の3つのコマンドレットを使用する。 Set-Location(エイリアス:sl) … 現在のドライブを変更するGet-ChildItemn(エイリアス:gc) … 環境変数の一覧を得るGet-Contentn(エイリアス:gci) … 環境変数を表示する 以下は、環境変数の一覧を画面表示させ…

【PowerShell】エラーメッセージ「このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\○○○\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。」

Windowsのインストール直後では、スクリプト(*.ps1)を実行しようとすると、「スクリプトの実行がシステムで無効になっているため~」というメッセージが表示されて実行できない。そのため、実行ポリシーを変更することで実行できるようにする。 「Windows …

【PowerShell】パス付きファイル名を代入している変数から拡張子を取り除く、パスだけを取り出す、など

System.IO名前空間のPathクラスを使うと簡単にできる。以下、メソッドとその動作の対応表。 GetFileNameWithoutExtension→フルパスからパス名とファイルの拡張子(最後のピリオド以降)を取り除くGetDirectoryName→フルパスからパス名を取り出すGetFileName→…

【PowerShell】テキストファイルを最終行から順番に表示して最後に1行目を表示する

Linuxで言うところのtacコマンドに相当するコマンドレットはPowerShellにはないことから、Get-Contentコマンドレットを使用して行ってみる。以下のようなdata.datというテキストファイルがカレントフォルダーある場合の例。 PS > Get-Content .\data.datA 1.…

【PowerShell】テキストファイルの最終行を表示する(Linuxのtailコマンド)

Get-Contentコマンドレットを使えばよい。-tailオプションを使用する。以下は、カレントフォルダーに以下のようなtext.txtというテキストファイルがあるという前提での使用例。 PS > Get-Content -path text.txtAB CD E FPS > Get-Content -path text.txt -t…

【PowerShell】PowerShellのバージョンを調べる

変数$PSVersionTableの値を確認すればよい。なお、$PSVersionTableはPowerShellバージョン2からなので注意。以下は表示例。バージョンによって表示される順番は異なる。 PS > $PSVersionTableName Value---- -----PSVersion ○○WSManStackVersion ○○Serializa…

【PowerShell】バッチファイル(.bat)の%ERRORLEVEL%に相当するもの

$?を使う。

【Windows PowerShell】スクリプトの途中でスクリプトを強制終了する

exitステートメントを使う。エラーコードを返すこともできる。 以下のスクリプトは、今のコンピューターの日時を取得し、秒が偶数であれば今の日時を表示し、奇数であれは何も表示しないでエラーコードの1を返しながらスクリプトを強制終了する。 exitステー…

【PowerShell】タスクスケジューラで実行するプログラムとネットワークドライブ

タスクスケジューラでスクリプトを実行する時、普段利用しているネットワークドライブには注意。ネットワークドライブはユーザーごとに設定されるものであり、かつ、ログイン後に有効になることから、仮にタスク実行時にログインをしていたとしても、タスク…

【PowerShell】フォルダーが存在するか否か確認する

コマンドレットTest-Pathを使えばよい。例えばC:\workというフォルダーがあるかどうかの確認をIF文で行う場合は、以下のようにすればよい。 if (Test-Path c:\work) { }

【PowerShell】タスクスケジューラでスクリプトファイルを実行する

タスクスケジューラでスクリプトファイル(○○.ps1)を指定しても、タスク実行時はそのファイルがメモ帳で開かれるだけで実行されない。 実行するためには、タスクスケジューラのプロパティの「操作」タブで、以下のように登録すればよい。 powershell.exe -C…

【PowerShell】変数を使用した文字列の作成がうまくいかない

例えば、以下のようにして「Hello_World」という文字列を作成しようとするとうまくいかない。 PS > $a = "Hello" PS > $b = "World" PS > "$a_$b" World 文字「_」(アンダースコア、アンダーバー、アンダーライン)が変数とつながると、変数の中身の展開が…

Windows版VimでPowerShellのスクリプトファイルをカラー表示する。

まずはここからPowerShellのシンタックスファイル(ps1.vim)をダウンロードする。 http://www.vim.org/scripts/script.php?script_id=1327 Vimの専用フォルダーにps1.vimをコピーする。例えば、VimをC:\Vimにインストールしているのであれば、C:\Vim\runtim…

エイリアスの設定

長いプログラムを起動するときに、簡単に実行できるように短縮名を設定する。たとえば、Mingwのmakeはmingw32-make.exeとコマンド名が長いので、makeと入力したら実行できるようにする。 > Set-Alias make 'mingw32-make.exe' もちろん、mingw32-make.exeの…

PowerShell起動時の設定ファイルの作成&設定

エイリアスなどPowerShell起動時に設定しておきたい内容は、プロファイルというファイルに記述しておくと、起動時に自動的に読み込んで、設定されるようになる。 そのプロファイルというファイルの確認方法は次のようにする。 > $profile 一番最初(PowerShe…

PowerShellのスクリプトを実行できるようにする

初期状態でスクリプトを実行しようとすると,「スクリプトの実行がシステムで無効になっているため~」メッセージが表示されて実行できない.実行ポリシーを変更する. スタートメニューで「Windows PowerShell」を表示させて,右クリック.「管理者として実…