Batch file 防火墙上下文菜单 目标
我需要为Batch file 防火墙上下文菜单 目标,batch-file,Batch File,我需要为.exe文件添加阻止防火墙上下文菜单。 来源 (为我的使用而修改) (没有答案) 代码 当与不包含空格的文件路径一起使用时,此代码工作得非常好 A specified value is not valid. Usage: add rule name=<string> dir=in|out .. Press any key to continue. . . 如果文件路径包含空格,它只会抛出这个错误。为了调试,我在前面代码的末尾添加了&暂停 输出
.exe
文件添加阻止防火墙上下文菜单。
来源 (为我的使用而修改) (没有答案)
代码 当与不包含空格的
文件路径一起使用时,此代码工作得非常好
A specified value is not valid.
Usage: add rule name=<string>
dir=in|out
..
Press any key to continue. . .
如果文件路径包含空格
,它只会抛出这个错误。为了调试,我在前面代码的末尾添加了&暂停
输出
我希望我们能作为一个团队一起解决这个问题。如果需要,我将编辑和更新OP,以获得更多澄清或更新感谢@micheal\u heath的回复。
Reg Add "HKLM\Software\Classes\exefile\shell\Firewall\command"^
/T REG_SZ^
/D "Elevate.exe CMD.exe /Q /C For %%%%A In (\\\"%%1\\\") Do Netsh Advfirewall Firewall Add Rule Name=\\\"%%~nA\\\" Dir=Out Action=Block Program=\\\"%%1\\\""^
/F
使用时,可能需要转义双引号。
它由C语言构成,C语言使用argv
进行参数处理
就像reg
用来解析参数一样
reg
删除\
中的\
“
以便保留”
。
问题在于,执行时使用“
”提升,这不是
使用\
进行转义,将删除“
”。
因此,带空格的路径现在没有外部的“
来保存它们
防止分裂
通过在\“
之前添加另一个\
来解决此问题。
如果仅使用一个\
变为\\“
,则转义以下内容
\
,因此“
被删除。因此,再添加一个\
成为
\\\”
以转义\
,并转义“
,以便\
将保留”
所以reg
解析\\\”
,提升解析\”
和cmd
解析“
插入到注册表中的内容如下所示:
Elevate.exe CMD.exe /Q /C For %%A In (\"%1\") Do Netsh Advfirewall Firewall Add Rule Name=\"%~nA\" Dir=Out Action=Block Program=\"%1\"
请不要诋毁你的问题。你可以自己删除它,如果你想的话,也可以要求与你的问题脱节。
Reg Add "HKEY_CLASSES_ROOT\exefile\Shell\Firewall\Command" /T Reg_SZ /D "Elevate.exe CMD.exe /Q /C For %%%%A In (\"\"%%1\"\") Do Netsh Advfirewall Firewall Add Rule Name=\"\"%%~nA\"\" Dir=Out Action=Block Program=\"\"%%1\"\""
Reg Add "HKLM\Software\Classes\exefile\shell\Firewall\command"^
/T REG_SZ^
/D "Elevate.exe CMD.exe /Q /C For %%%%A In (\\\"%%1\\\") Do Netsh Advfirewall Firewall Add Rule Name=\\\"%%~nA\\\" Dir=Out Action=Block Program=\\\"%%1\\\""^
/F
Elevate.exe CMD.exe /Q /C For %%A In (\"%1\") Do Netsh Advfirewall Firewall Add Rule Name=\"%~nA\" Dir=Out Action=Block Program=\"%1\"