凌菡 发表于 2014-2-1 18:39:05

声明变量,@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)

请教,我第一种写法是哪里错了呢?

veket_linux 发表于 2014-2-1 19:09:29

-on的后面少了个空格

fuldho 发表于 2014-2-1 20:15:27

本帖最后由 fuldho 于 2014-2-1 20:16 编辑



半个双引号???

凌菡 发表于 2014-2-1 20:23:35

谢谢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)

afan 发表于 2014-2-1 22:22:20

试下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:38:32

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

本帖最后由 凌菡 于 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)

凌菡 发表于 2014-2-2 09:21:12

见鬼了,我再次运行这段代码,却又不行了, why?

fuldho 发表于 2014-2-2 09:42:11

'"'
单引加引号是防止路径有空格!

凌菡 发表于 2014-2-2 09:56:03

'"'
单引加引号是防止路径有空格!
fuldho 发表于 2014-2-2 09:42 http://www.autoitx.com/images/common/back.gif
原来这个引号是这作用?那我想想我应该怎么写再!我刚运行我上面那段之前测试出正确的代码,现在又不行了,没效果了~

凌菡 发表于 2014-2-2 10:07:05

本帖最后由 凌菡 于 2014-2-2 10:08 编辑

无奈了,不知道正确的到底该怎么写了!SetACL DownLoad

求关注啊!

+> ============================================
+>执行环境:
+>        CPU构架:        X64
+>        系统构架:        X64
+>        系统语言:        0804
+>        键盘布局:        00000804
+>        内存总量:        8124MB
+>        内存剩余:        6371MB
+>        操作系统:        WIN_7/Service Pack 1
+>        AU3版本:        3.3.9.4
+> ============================================

凌菡 发表于 2014-2-2 10:15:15

+> ============================================
+>执行环境:
+>        CPU构架:        X64
+>        系统构架:        X64
+>        系统语言:        0804
+>        键盘布局:        00000804
+>        内存总量:        8124MB
+>        内存剩余:        6271MB
+>        操作系统:        WIN_7/Service Pack 1
+>        AU3版本:        3.3.10.2
+> ============================================

也不行了!

gold13 发表于 2014-2-6 17:26:05

本帖最后由 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)
你看以上代码对不对。

凌菡 发表于 2014-2-8 21:11:04

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]
查看完整版本: 声明变量,@ComSpec调用不生效