需要 Windows 个运行文件夹中所有命令的命令文件
Need Windows command file that runs all commands in a folder
https://www.online-tech-tips.com/computer-tips/create-windows-batch-files/ 解释了如何创建一个命令(批处理)文件来打开一组特定的 Windows 命令。我想概括一下,所以我可以创建包含命令快捷方式的文件夹和 运行 这样的文件夹(使用命令文件),这意味着我可以使用命令文件执行文件夹中包含的所有命令快捷方式.
我在网上搜索过,没有找到这样的命令文件。
我想我需要的只是一种扫描文件夹并循环执行文件夹中的每个命令的方法。可能 Windows 标准 .cmd 文件(cmd.exe 的 运行)可以做到这一点,但如果不是,则可以使用 Powershell(通过 .ps1 命令文件)。
一个例子是在桌面上创建一个文件夹,其中包含与某些特定和重复处理(例如,制作电影或构建应用程序)相关的多个命令快捷方式。我只需在资源管理器中打开文件夹即可编辑这些命令。当我想 运行 所有命令,每个命令都有自己的 window 时,我所要做的就是右键单击桌面上的文件夹和 select 命令文件的名称运行文件夹中的所有快捷方式。
我希望这很清楚,并且很清楚为什么这样的命令文件在完成其他项目后返回项目时非常有用。
如果没有,请在评论中提问。
我对 "command shortcuts" 这个短语感到困惑。如果您只想找到当前目录中的所有快捷方式文件,并在单独的 window 中启动每个快捷方式文件,这就是您所需要的。
gci *.lnk | % { start $_ }
显示使用 Start-Process
.
打开当前文件夹中所有快捷方式文件 (*.lnk
) 的 PowerShell 命令
这是将其合并到名为 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
}
https://www.online-tech-tips.com/computer-tips/create-windows-batch-files/ 解释了如何创建一个命令(批处理)文件来打开一组特定的 Windows 命令。我想概括一下,所以我可以创建包含命令快捷方式的文件夹和 运行 这样的文件夹(使用命令文件),这意味着我可以使用命令文件执行文件夹中包含的所有命令快捷方式.
我在网上搜索过,没有找到这样的命令文件。
我想我需要的只是一种扫描文件夹并循环执行文件夹中的每个命令的方法。可能 Windows 标准 .cmd 文件(cmd.exe 的 运行)可以做到这一点,但如果不是,则可以使用 Powershell(通过 .ps1 命令文件)。
一个例子是在桌面上创建一个文件夹,其中包含与某些特定和重复处理(例如,制作电影或构建应用程序)相关的多个命令快捷方式。我只需在资源管理器中打开文件夹即可编辑这些命令。当我想 运行 所有命令,每个命令都有自己的 window 时,我所要做的就是右键单击桌面上的文件夹和 select 命令文件的名称运行文件夹中的所有快捷方式。
我希望这很清楚,并且很清楚为什么这样的命令文件在完成其他项目后返回项目时非常有用。
如果没有,请在评论中提问。
我对 "command shortcuts" 这个短语感到困惑。如果您只想找到当前目录中的所有快捷方式文件,并在单独的 window 中启动每个快捷方式文件,这就是您所需要的。
gci *.lnk | % { start $_ }
Start-Process
.
*.lnk
) 的 PowerShell 命令
这是将其合并到名为 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
}