15

例:現在のディレクトリsに へのショートカットがあります。SomeProgram

ではcmd.exe、入力するsとプログラムが起動します。

PowerShell で入力すると、次のようになりsます。

The term 's' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.

s.lnkまたはと入力SomeProgramすると、プログラムが正常に実行されます。

プログラムと同じようにショートカットを実行するように PowerShell を構成するにはどうすればよいですか?

4

6 に答える 6

18

「invoke-item」コマンドレットを使用してショートカットを呼び出すこともできます。たとえば、「internet explorer.lnk」を起動したい場合は、次のコマンドを入力できます。

invoke-item 'Internet Explorer.lnk'

または、エイリアスを使用することもできます

ii 'internet explorer.lnk'

もう 1 つのすばらしい点は、「invoke-item t.txt」を実行すると、メモ帳など、*.txt ファイルのデフォルト ハンドラーが何であれ自動的に開くことです。

注:アプリケーション app.exe を現在のディレクトリで実行する場合は、実行する相対パスまたは絶対パスを実際に指定する必要があります。「.\app.exe」は、アプリケーションを実行するために入力する必要があるものです。

于 2008-09-15T19:10:15.210 に答える
9

私のVistaシステムでは、リストに.lnkを指定して環境変数PATHEXTを設定しない限り、Sと入力してもlnkファイルは起動されません。私がする時。Sはcmd.exeで機能し、PowerShellで。\Sを実行する必要があります。

于 2008-08-22T17:42:52.500 に答える
5

;.LNK環境変数の最後に追加した後、前の表記PATHEXTがなくてもショートカットを実行できるようになりました。./(bruceatkに感謝します!)

私はまた、私の中のすべてのショートカットを自動的にエイリアスする小さなスクリプトを作成するというStevenの提案に触発されましたPATH(より単純なソリューションに固執する予定ですが;)。

$env:path.Split( ';' ) | 
  Get-ChildItem -filter *.lnk | 
  select @{ Name='Path'; Expression={ $_.FullName } }, 
         @{ Name='Name'; Expression={ [IO.Path]::GetFileNameWithoutExtension( $_.Name ) } } | 
  where { -not (Get-Alias $_.Name -ea 0) } | 
  foreach { Set-Alias $_.Name $_.Path }
于 2008-08-22T22:48:05.403 に答える
2

1つは、ショートカットが「s」ではなく「s.lnk」です。たとえば、名前が「t.txt」の場合、「t」と入力してテキストファイル(メモ帳など)を開くことはできません:) Technetによると

PATHEXT環境変数は、実行可能ファイルを検索するときにWindowsNTによってチェックされるファイル拡張子のリストを定義します。PATHEXTのデフォルト値は.COM;.EXE;.BAT;.CMDです。

ここで他の人が説明しているようにドットソースを作成することも、呼び出し文字「&」を使用することもできます。これは、PSが文字列を単なるテキストではなく実行するものとして扱うことを意味します。ただし、これはスクリプトではより重要になる可能性があります。

引用符の外にあるパラメータを渡す必要があることを付け加えておきます(これは前の1ビットです)。「-r」は引用符で囲まれた文字列ではなく、exeファイルのみであることに注意してください。

& "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -r | out-null
于 2008-08-22T22:43:10.610 に答える
2

私はあなたができるとは思わない。プロファイル スクリプトから呼び出すスクリプトでよく使用されるコマンドにエイリアスを設定した方がよい場合があります。

例 -

セット エイリアス np c:\windows\notepad.exe

次に、コマンド ラインから簡単に入力できる短い名前を使用できます。

于 2008-08-22T17:19:16.067 に答える
0

いつでもタブ補完を使用して「s[TAB]」と入力し、Enterキーを押すと実行されます。

于 2008-08-22T17:27:26.797 に答える