[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] [已解决]我想让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

我试了一下,修改如下:
  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"
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 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

  • The ampersand (&), pipe (|), and parentheses ( ) are special characters that must be preceded by the escape character (^) or quotation marks when you pass them as arguments.

  • If a command completes an operation successfully, it returns an exit code of zero (0) or no exit code. For more information about exit codes, see Microsoft Windows Resource Kits

TOP

回复 3# lforl


   
这个隐藏方法好!
bat小白,请多指教!谢谢!

TOP

返回列表