Создайте много ярлыков (.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 ярлыков, где в "Target" у него просто есть имя файла. Мне нужно создать более 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()
}

Это был + $ оригинальный бит, который я искал. Ура.

Другие вопросы по тегам