Cmd icacls C:\Users\%username%\AppData\Local\Mozilla\updates/q/C/t/deny用户:F

Cmd icacls C:\Users\%username%\AppData\Local\Mozilla\updates/q/C/t/deny用户:F,cmd,folder-permissions,icacls,cacls,Cmd,Folder Permissions,Icacls,Cacls,我想拒绝当前用户访问、修改和读取上述文件夹的权限。使用icacls。 icacls C:\Users\%username%\AppData\Local\Mozilla\updates/q/C/t/deny Users:F 但我收到错误“系统找不到指定的路径” 有谁能帮我这方面的忙。因为你没有提供太多信息,所以我的答案只是猜测 “系统找不到指定的路径” 这显然意味着路径不存在。但是,有一个例外:有空间的路径。要让cmd和批处理文件正确处理空间,您需要“quote”它们。而且,正如@Mofi提到的,

我想拒绝当前用户访问、修改和读取上述文件夹的权限。使用icacls。 icacls C:\Users\%username%\AppData\Local\Mozilla\updates/q/C/t/deny Users:F 但我收到错误“系统找不到指定的路径”


有谁能帮我这方面的忙。

因为你没有提供太多信息,所以我的答案只是猜测

“系统找不到指定的路径”

这显然意味着路径不存在。但是,有一个例外:有空间的路径。要让
cmd
批处理文件
正确处理空间,您需要
“quote”
它们。而且,正如@Mofi提到的,可能是用户的配置文件目录不是
C:\Users\%USERNAME%

因此,我认为要解决这两个问题,您应该将命令更改为:

icacls "C:\Users\%Username%\AppData\Local\Mozilla\updates" /q /c /t /deny users:F
或者@Mofi建议的更好的解决方案:

icacls "%LOCALAPPDATA%\Mozilla\updates" /q /c /t /deny users:F

因为你没有提供太多的信息,所以我的答案只是猜测

“系统找不到指定的路径”

这显然意味着路径不存在。但是,有一个例外:有空间的路径。要让
cmd
批处理文件
正确处理空间,您需要
“quote”
它们。而且,正如@Mofi提到的,可能是用户的配置文件目录不是
C:\Users\%USERNAME%

因此,我认为要解决这两个问题,您应该将命令更改为:

icacls "C:\Users\%Username%\AppData\Local\Mozilla\updates" /q /c /t /deny users:F
或者@Mofi建议的更好的解决方案:

icacls "%LOCALAPPDATA%\Mozilla\updates" /q /c /t /deny users:F

缺少双引号很可能是用户名包含命令行关键字符(如空格字符或符号)的原因。另一个可能是用户的配置文件目录不是
C:\Users\%USERNAME%
。因此,最好使用
icacls“%USERPROFILE%\AppData\Local\Mozilla\updates”/q/c/t/deny users:F
或最佳
icacls“%LOCALAPPDATA%\Mozilla\updates”/q/c/t/deny users:F
。请参阅Wikipedia关于的章节。除了内置命令,如
dir
,cmd不关心命令参数中的空格。将命令行拆分为
argv
数组的不是POSIX shell。每个Windows程序都必须进行自己的命令行解析,VC++
argv
规则是典型的。这就是说,引号还转义shell中的其他特殊字符,例如命令行上的
&
——但不是
%
。百分比只能在批处理文件中可靠地转义,将其加倍为
%%
就可以了。@eryksun如果不同时引用参数,exe会看到:
C:\Users\Spaced-arg1
/
Username\blah-arg2
/
/q-arg3…
,这是错误的,但与cmd shell无关。可执行文件负责解析自己的命令行。
ICACLS name[/grant[:r]Sid:perm[…]]
[/deny Sid:perm[…]
[/remove[:g |:d]]Sid[…][/T][/C][/L][/Q][/code>
[/setintegritylevel policy[…]
名称是一个参数,不是多引号。缺少双引号很可能是用户名包含命令行关键字符(如空格字符或符号)的原因。另一个可能是用户的配置文件目录不是
C:\Users\%USERNAME%
。因此,最好使用
icacls“%USERPROFILE%\AppData\Local\Mozilla\updates”/q/c/t/deny users:F
或最佳
icacls“%LOCALAPPDATA%\Mozilla\updates”/q/c/t/deny users:F
。请参阅Wikipedia关于的章节。除了内置命令,如
dir
,cmd不关心命令参数中的空格。将命令行拆分为
argv
数组的不是POSIX shell。每个Windows程序都必须进行自己的命令行解析,VC++
argv
规则是典型的。这就是说,引号还转义shell中的其他特殊字符,例如命令行上的
&
——但不是
%
。百分比只能在批处理文件中可靠地转义,将其加倍为
%%
就可以了。@eryksun如果不同时引用参数,exe会看到:
C:\Users\Spaced-arg1
/
Username\blah-arg2
/
/q-arg3…
,这是错误的,但与cmd shell无关。可执行文件负责解析自己的命令行。
ICACLS name[/grant[:r]Sid:perm[…]]
[/deny Sid:perm[…]
[/remove[:g |:d]]Sid[…][/T][/C][/L][/Q][/code>
[/setintegritylevel policy[…]
名称是一个参数,不是多个。用户可能仍然能够删除该文件,因为删除子访问权限可能是由父文件夹授予的。用户可能仍然能够删除该文件,因为删除子访问权限可能是由父文件夹授予的。