Board logo

标题: [注册表类] [已解决]我想让nircmd在复制一个文件的路径到剪贴板的时候发出beep一下提示音 [打印本页]

作者: lforl    时间: 2024-5-27 15:19     标题: [已解决]我想让nircmd在复制一个文件的路径到剪贴板的时候发出beep一下提示音

本帖最后由 lforl 于 2024-5-27 22:56 编辑

我想让nircmd在复制一个文件的路径到剪贴板的时候发出beep一下提示音。
我感觉命令没写错,为啥没声音?

nircmd已经正确安装到 C:\Windows\nircmd.exe
怎样才能让两条命令顺序执行?请大佬指点!

目前只能执行第一条命令(复制路径),而第二条命令(beep)未能执行:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\copypath]
@="复制文件路径(&F)"
"Icon"="imageres.dll,-5302"

[HKEY_CLASSES_ROOT\*\shell\copypath\command]
@="nircmd clipboard set \"%1\""

[HKEY_CLASSES_ROOT\Directory\shell\copypath]
@="复制文件夹路径(&F)"
"Icon"="imageres.dll,-5302"

[HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
@="nircmd clipboard set \"%l\" && nircmd beep 2000 200"


如果我让它先beep,再复制,它beep完就不复制了:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\copypath]
@="复制文件路径(&F)"
"Icon"="imageres.dll,-5302"

[HKEY_CLASSES_ROOT\*\shell\copypath\command]
@="nircmd clipboard set \"%1\""

[HKEY_CLASSES_ROOT\Directory\shell\copypath]
@="复制文件夹路径(&F)"
"Icon"="imageres.dll,-5302"

[HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
@="nircmd beep 2000 200 && nircmd clipboard set \"%l\"  "



大名鼎鼎的nircmd的下载主页:
https://www.nirsoft.net/utils/nircmd.html

作者: 77七    时间: 2024-5-27 20:56

我试了一下,修改如下:
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\copypath]
  3. @="复制文件路径(&F)"
  4. "Icon"="imageres.dll,-5302"
  5. [HKEY_CLASSES_ROOT\*\shell\copypath\command]
  6. @="cmd /c nircmd clipboard set \"%1\""
  7. [HKEY_CLASSES_ROOT\Directory\shell\copypath]
  8. @="复制文件夹路径(&F)"
  9. "Icon"="imageres.dll,-5302"
  10. [HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
  11. @="cmd /c nircmd clipboard set \"%l\" && nircmd beep 2000 200"
复制代码

作者: lforl    时间: 2024-5-27 21:24

本帖最后由 lforl 于 2024-5-29 16:21 编辑

回复 2# 77七
真大佬哈!响声有了,只是有个黑框(cmd控制台)一闪而过——略有遗憾。感谢@77七

貌似这样就成功了,用nircmd去隐藏cmd
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\copypath]
  3. @="复制文件路径(&F)"
  4. "Icon"="imageres.dll,-5302"
  5. [HKEY_CLASSES_ROOT\*\shell\copypath\command]
  6. @="nircmd clipboard set \"%1\""
  7. [HKEY_CLASSES_ROOT\Directory\shell\copypath]
  8. @="复制文件夹路径(&F)"
  9. "Icon"="imageres.dll,-5302"
  10. [HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
  11. @="nircmd exec hide cmd /c (nircmd clipboard set \"%l\") && (nircmd beep 2000 200)"  "
复制代码
受到这大佬帖子的启发
http://www.bathome.net/viewthread.php?tid=3271



看看还有大佬是不是有更到位的解。或者更精简的代码。

以下顺便留存相关概念链接,备忘。

在 Windows 的命令提示符(cmd)中,可以使用以下方法同时运行两个命令:

使用 & 符号: 使用 & 符号可以将两个命令连接起来,使它们同时运行。

command1 & command2

例如:

dir & echo "Both commands executed"

使用 && 符号: 使用 && 符号也可以将两个命令连接起来,但是第一个命令成功执行后才会运行第二个命令。

command1 && command2

例如:

echo "Command 1 succeeded" && echo "Command 2 executed"

使用 || 符号: 使用 || 符号可以在第一个命令失败时运行第二个命令。

command1 || command2

例如:

del non_existent_file.txt || echo "File not found"

这些方法允许你在 Windows 命令提示符中同时运行多个命令,可以根据需要选择适合的连接符号来控制命令的执行顺序。


https://www.huntsbot.com/qa/y22k/how-do-i-run-two-commands-in-one-line-in-windows-cmd?lang=zh_CN
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490954%28v=technet.10%29



字符

语法

定义

& [...]

command1 & command2

用于在一条命令行中分隔多条命令。Cmd.exe 运行第一条命令,然后运行第二条命令。

&& [...]

command1 && command2

仅当符号前面的命令成功执行时,才运行 && 后面的命令。Cmd.exe 运行第一条命令,然后仅在第一条命令成功完成时运行第二条命令。

|| [...]

command1 || command2

|| 用于仅在前面的命令失败时 || 运行后面的命令。Cmd.exe 运行第一条命令,然后仅在第一条命令未成功完成(接收到大于 0 的错误代码)时运行第二条命令。

( ) [...]

( command1 & command2)

用于分组或嵌套多个命令。

; or ,

command1 parameter1;parameter2

用于分隔命令参数。


Note


作者: 77七    时间: 2024-5-28 10:57

回复 3# lforl


   
这个隐藏方法好!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2