コマンド ラインでドキュメントの完全修飾ファイル名を受け入れるが、完全修飾されていないファイル名を受け入れない、Windows での notepad++ または他の多くの GUI アプリケーションの起動は、多くの場合、次のような DOS/Windows バッチ ファイルで行われます。
@echo off
start "notepad++" "C:\Program Files (x86)\Notepad++\notepad++.exe" %*
上記を「npp.cmd」として保存すると、「npp foo.txt」と入力でき、機能します。次のように、npp.cmd がないと、exe へのフル パスを入力しても、編集するファイルを完全に修飾しなくても機能しないことに注意してください。
"C:\Program Files (x86)\Notepad++\notepad++.exe" foo.txt
ただし、これは機能します。
"C:\Program Files (x86)\Notepad++\notepad++.exe" c:\users\warren\foo.txt
この制限を簡単に回避する方法は、このファイルの上部に示されているバッチ ファイル (.cmd) を作成することです。私はPowerShellを学んでいて、上部のバッチファイルで「start .... %*」の呪文に相当する魔法を見つけようとしています。「powershell関数」でなければならないと思います。
これが私がこれまでに持っているものです:
new-item -path alias:nppapp -value "C:\Program Files (x86)\Notepad++\notepad++.exe"
function npp { nppapp $args }
上記は、パラメーター展開を行わないという点で$args
と実際には同等ではないため、最終的には単なるエイリアスと同等です。%*
私はこのようなものが必要だと思います:
new-item -path alias:nppapp -value "C:\Program Files (x86)\Notepad++\notepad++.exe"
function npp { nppapp globexpand($args) }
globexpand
もちろん、これはある種の展開/グロビング ルーチンのプレースホルダーであり、PowerShell ではまだ見つけることができませんでした。