既存のファイルのショートカット(.lnk)を多数作成し、すべてのショートカットにターゲット引数を追加します。

既存のファイルのショートカット(.lnk)を多数作成し、すべてのショートカットにターゲット引数を追加します。

1000個の.binファイルがあるフォルダがあります。これらのファイルへのショートカットを静的なセットで作成するPowerShellコマンドを見つけるのを手伝ってほしいです。コマンドラインパラメータショートカットの「ターゲット」には、プログラム (C:\prog.exe)、引数 (-X)、ファイル (dll.dll)、ファイル名 (randomly_named_file.bin) を指定します。

ターゲット引数付きのショートカット

"C:\prog.exe" -X "C:\dll.dll" "C:\folder\file_0001.bin"

フォルダー内のすべての .bin ファイルをハイライトし、右クリックしてターゲット フォルダーにドラッグし、「ここにショートカットを作成」を選択すると、「ターゲット」にファイル名だけがある 1000 個以上のショートカットが作成されます。すべて同じターゲット引数を持つ 1000 個以上のショートカットを作成する必要があります。

答え1

インターネット上の他の場所で助けを見つけました!

以下は、ファイル名/場所をターゲット引数セットの最後に保持しながら、数十億のショートカットを一括作成し、それらすべてにターゲット引数を追加できるシンプルでエレガントな PowerShell スクリプトです。

PS C:\フォルダー\ファイルが保存されている場所>

Get-ChildItem | ForEach-Object {
$original = '"' + $_.FullName + '"'
$link     = 'C:\folder\where\files\are\kept' + $_.BaseName + '.lnk'
$wshell   = New-Object -ComObject WScript.Shell
$shortcut = $wshell.CreateShortcut($link)
$shortcut.TargetPath = 'C:\prog.exe'
$shortcut.Arguments = '-X "C:\dll.dll" ' + $original
$shortcut.Save()
}

それは+ $オリジナル探していたものが見つかりました。やったー。

関連情報