日々の出来事や調べ物に関するネタを備忘録(Memorandum)として残していくBlogです。

PowerShellコードスニペット:プログラムのフルパス実行(パスに空文字を含む場合)

何やかんやで初回投稿日から時間が経ってしまいました。やはりこの辺、意識して『何か出す』って気持ちを持ってないとなかなか出ないもんですね。まぁこのブログには『Daily』みたいなタイトルは付いてないので別に毎日投稿していなくても無問題。

という訳でタイトル内容。最近めっきりPowerShellスクリプトを使う機会が多くなりました。ShellScriptかPowerShellSQL(PostgreSQL準拠)が最近使っているプログラミング(?)言語です。

コンテンツのバックアップ
を行い退避までを行うPowerShellスクリプトを書いていたのですが、プログラムのフルパス実行を試みてみているものの上手く動かずな状態で暫し考えていたのですが原因は至極単純。空文字が紛れ込んでいたのでした。"Program Files"とかの類のやつですね。

で、PowerShellの場合どう対処するか。2パターンあるようです。

## 実行文全体をシングルクオートで囲み、呼び出し演算子&を用いて処理実行
C:\> & 'D:\Tableau\Tableau Server\8.3\bin\tabadmin.exe' status

## 空文字部分を、エスケープ文字『`』を使ってエスケープ
C:\> D:\Tableau\Tableau` Server\8.3\bin\tabadmin.exe status

これでスッキリ。つーか職場でWeb経由で探して見つからなかったのに家に置いといたこのリファレンス見たら一発で見つかった!これはやはり職場の方に置いとくべきか...(職場にも実はあったりしそうだな。今度探してみよう)

【改訂新版】 Windows PowerShell ポケットリファレンス

【改訂新版】 Windows PowerShell ポケットリファレンス