Нужен командный файл Windows, который запускает все команды в папке - PullRequest
0 голосов
/ 22 сентября 2019

https://www.online -tech-tips.com / computer-tips / create-windows-batch-files / объясняет, как создать командный (пакетный) файл, который открывает набор определенных команд Windows.Я хотел бы обобщить это, чтобы я мог создавать папки, содержащие ярлыки команд, и запускать такую ​​папку (используя командный файл), а это означает, что я могу выполнять все сочетания клавиш, содержащиеся в папке, используя командный файл.

Я искал в Интернете и не могу найти такой командный файл.

Я думаю, что все, что мне нужно, это способ сканирования папки и выполнения каждой команды в папке в цикле.Возможно, стандартный Windows-файл .cmd (запускаемый cmd.exe) мог бы сделать это, но если нет, то можно использовать Powershell (с помощью командного файла .ps1).

Примером может служить создание папки.на рабочем столе, содержащий несколько комбинаций команд, связанных с определенной и повторяющейся обработкой (скажем, создание фильма или создание приложения).Я мог бы редактировать эти команды, просто открыв папку в Проводнике.Когда я хочу выполнить все команды, каждая в своем собственном окне, все, что мне нужно сделать, это щелкнуть правой кнопкой мыши папку на рабочем столе и выбрать имя командного файла, который запускает все ярлыки в папке.

Надеюсь, это понятно и понятно, почему такой командный файл было бы очень полезно использовать при возвращении в проект после работы над другими проектами.

Если нет, просто задайте вопросы вкомментарии.

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

Меня смущает фраза "сочетания клавиш".Если все, что вам нужно, это найти все файлы ярлыков в текущем каталоге и запустить каждый из них в отдельном окне, это все, что вам нужно.

gci *.lnk | % { start $_ }
1 голос
/ 23 сентября 2019

Полезный ответ Уолтера Митти показывает команду PowerShell, которая открывает все файлы ярлыков (*.lnk) в текущей папке, используя Start-Process.

Вот код, который включает его вопределение команды контекстного меню с именем Open Shortcuts, которое станет доступным:

  • , если щелкнуть правой кнопкой мыши папку на рабочем столе или в проводнике файлов

  • при щелчке правой кнопкой мыши по фону открытой папки в проводнике (в этом случае команда будет применяться к этой открытой папке).

Если файлы ярлыков присутствуют в данной папке, они все открываются (асинхронно), как если бы они были дважды щелкнуть;при отсутствии ярлыков отображается предупреждение.

Обратите внимание, что я нацеливаюсь на HKEY_CURRENT_USER\Software\Classes, а не HKEY_CLASSES_ROOT, что делает определение определенным для пользователя и также не требует запуска с повышением:

# Define a shortcut-menu command that opens all shortcut files (*.lnk) in the target folder (%V):

# Define the name to appear in the shortcut menu.
$commandName = 'Open Shortcuts' 

# Define the PowerShell command to run, hidden, via mshta.exe, so that no PowerShell console window opens (temporarily).
$command = @"
mshta.exe vbscript:(CreateObject("WScript.Shell").Run("powershell.exe -noexit -noprofile -c `$f = Get-Item \""%V\*.lnk\""; if (`$f) { `$f | ForEach-Object { Start-Process `$_.FullName } } else { (New-Object -ComObject WScript.Shell).Popup(\""%V contains no shortcut files (*.lnk).\"",0,\""$commandName\"",48) }",0))(Window.Close)'
"@

# Define the shortcut-menu commands in the registry, for:
#  * folders
#  * the background of open folders (to apply the command to the open folder)
'Folder', 'Directory\Background' | ForEach-Object {
  New-Item -Force "HKCU:\Software\Classes\$_\shell\$commandName\command" |
    Set-ItemProperty -Name '(Default)' -Value $command
}
...