声明变量,@ComSpec调用不生效
Local $FilesPath = @ScriptDir & '\drivers',$SetACL_Read_ex = '-ot file -actn ace -ace "n:Everyone;p:read_ex'
Run(@ComSpec & " /c " & "SetACL -on" & $FilesPath& $SetACL_Read_ex ,"",@SW_HIDE)
如上命令不生效,但,如果直接在CMD却正常:
SetACL -on drivers -ot file -actn ace -ace "n:Everyone;p:read_ex"
而如下这样,也正常:
Run(@ComSpec & " /c " & 'SetACL -on drivers -ot file -actn ace -ace "n:Everyone;p:read_ex"',"",@SW_HIDE)
请教,我第一种写法是哪里错了呢? -on的后面少了个空格 本帖最后由 fuldho 于 2014-2-1 20:16 编辑
半个双引号??? 谢谢2楼3楼的回复,可是,修正后,还是给这个文件夹添不了everyone权限,代码如下:
Local $FilesPath = @ScriptDir & '\drivers',$SetACL_Read_ex = '-ot file -actn ace -ace "n:Everyone;p:read_ex"'
Run(@ComSpec & " /c " & "SetACL -on" & "" & $FilesPath & "" & $SetACL_Read_ex,"",@SW_HIDE) 试下Local $FilesPath = @ScriptDir & '\drivers"', $SetACL_Read_ex = ' -ot file -actn ace -ace "n:Everyone;p:read_ex"'
Run(@ComSpec & ' /c ' & 'SetACL -on "' & $FilesPath & $SetACL_Read_ex, '', @SW_HIDE) 本帖最后由 fuldho 于 2014-2-2 08:49 编辑
Local $FilesPath = @ScriptDir & '\drivers', $SetACL_Read_ex = ' -ot file -actn ace -ace "n:Everyone;p:read_ex"'
Run(@ComSpec & ' /c SetACL -on ' &'"'& $FilesPath &'"'& $SetACL_Read_ex, '', @SW_HIDE) 本帖最后由 凌菡 于 2014-2-2 08:55 编辑
afan的写法是在声明变量里加空格,我测试了下,好像不行,文件加不上everyone权限
fuldho的写法快接近答案了,是用双引号替代空格符,但,还要在双引号内再加一空格,即" " ,而不是""
谢谢afan和fuldho,谢谢你们的指引,反复查阅和测试,我理解了正确的写法,如下:
Local $FilesPath = @ScriptDir & "\drivers",$SetACL_Read_ex = '-ot file -actn ace -ace "n:Everyone;p:read_ex"'
Run(@ComSpec & " /c " & 'SetACL -on' & " " & $FilesPath & " " & $SetACL_Read_ex,"",@SW_HIDE)
见鬼了,我再次运行这段代码,却又不行了, why? '"'
单引加引号是防止路径有空格! '"'
单引加引号是防止路径有空格!
fuldho 发表于 2014-2-2 09:42 http://www.autoitx.com/images/common/back.gif
原来这个引号是这作用?那我想想我应该怎么写再!我刚运行我上面那段之前测试出正确的代码,现在又不行了,没效果了~ 本帖最后由 凌菡 于 2014-2-2 10:08 编辑
无奈了,不知道正确的到底该怎么写了!SetACL DownLoad
求关注啊!
+> ============================================
+>执行环境:
+> CPU构架: X64
+> 系统构架: X64
+> 系统语言: 0804
+> 键盘布局: 00000804
+> 内存总量: 8124MB
+> 内存剩余: 6371MB
+> 操作系统: WIN_7/Service Pack 1
+> AU3版本: 3.3.9.4
+> ============================================ +> ============================================
+>执行环境:
+> CPU构架: X64
+> 系统构架: X64
+> 系统语言: 0804
+> 键盘布局: 00000804
+> 内存总量: 8124MB
+> 内存剩余: 6271MB
+> 操作系统: WIN_7/Service Pack 1
+> AU3版本: 3.3.10.2
+> ============================================
也不行了! 本帖最后由 gold13 于 2014-2-6 17:34 编辑
Local $FilesPath = @ScriptDir & "\drivers",$SetACL_Read_ex = ' -ot file -actn ace -ace "n:Everyone;p:read_ex"'
Run(@ComSpec & " /c " & 'SetACL -on '& $FilesPath &$SetACL_Read_ex,"",@SW_SHOW)
你看以上代码对不对。 Local $FilesPath = @ScriptDir & "\drivers",$SetACL_Read_ex = ' -ot file -actn ace -ace "n:Everyone;p ...
gold13 发表于 2014-2-6 17:26 http://www.autoitx.com/images/common/back.gif
你这个是对的,楼上好几位也是对,原来是我的SetACL出了问题,都是杀软惹的祸……结贴!
页:
[1]