找回密码
 加入
搜索
查看: 5238|回复: 13

[AU3基础] 声明变量,@ComSpec调用不生效

  [复制链接]
发表于 2014-2-1 18:39:05 | 显示全部楼层 |阅读模式

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)


请教,我第一种写法是哪里错了呢?
发表于 2014-2-1 19:09:29 | 显示全部楼层
-on的后面少了个空格
发表于 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)
发表于 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)
发表于 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?
发表于 2014-2-2 09:42:11 | 显示全部楼层
'"'
单引加引号是防止路径有空格!
 楼主| 发表于 2014-2-2 09:56:03 | 显示全部楼层
'"'
单引加引号是防止路径有空格!
fuldho 发表于 2014-2-2 09:42

原来这个引号是这作用?那我想想我应该怎么写再!我刚运行我上面那段之前测试出正确的代码,现在又不行了,没效果了~
 楼主| 发表于 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
+> ============================================

也不行了!
发表于 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

你这个是对的,楼上好几位也是对,原来是我的SetACL出了问题,都是杀软惹的祸……结贴!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 22:37 , Processed in 0.081081 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表