找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26994|回复: 9

[系统相关] 批处理命令 for 和 cacls 的问题

[复制链接]
发表于 2012-6-18 13:10:49 | 显示全部楼层 |阅读模式
-------------1.txt----------------
1111 2222 3333
aaaa bbbb
AAAA
---------------------------------------
  1. for /f "tokens=1-3" %%a in (1.txt) do (
  2. echo %%a
  3. echo %%b
  4. echo %%c)
复制代码
我想把 1.txt中的文字输出, 要求是每行输出一个,我用以上命令输出的时候 ,如果文本中每行不是3条 就会出错,
理想的输出为:
1111
2222
3333
aaaa
bbbb
AAAA
-------------------------------------------------------------
关于cacls.exe的问题, 我想把某文件修改权限,修改成只有Administrators完全控制 ,因为/p参数需要 确认(输入Y) ,所以我一步操作不出来。
cacls.exe /?    /P user:perm  替换指定用户的访问权限。

cals.exe aaa.exe /p Administrator:F
是否确定(Y/N)?

使用  echo y | cals.exe aaa.exe /p Administrator:F 命令也不行,请问如何不需要确认?   【是编辑权限不是替换】
发表于 2012-6-18 13:49:14 | 显示全部楼层

  1. for /f "delims=" %%a in (1.txt) do for %%i in ("%%a") do echo %%i
复制代码
不要随便加空格

  1. echo y| cals.exe aaa.exe /p Administrator:F
复制代码
发表于 2012-6-18 14:47:34 | 显示全部楼层
  1. echo y|cacls aaa.exe /e /c /p Administrator:f
复制代码
 楼主| 发表于 2012-6-18 14:51:09 | 显示全部楼层
回复 2# powerbat


--------------1.txt-----------
1111 2222 3333 4444
aaaa bbb  cccc
AAAA
很感谢你的回复 但是第一条命令看来是有问题的。
如果delims=的话 没有分割符号  读1.txt的时候就有问题了  

用 for /f "delims=" %%a in (1.txt) do echo %%a  测试输出%%a的时候就只有AAAA了。后边就肯定不对了。

calcs.exe的问题确实是我多加了空格的原因,按你的命令执行是对的。
 楼主| 发表于 2012-6-18 14:53:33 | 显示全部楼层
回复 3# cutebe


    C:\1.exe BUILTIN\Administrators:F
         NT AUTHORITY\SYSTEM:F
         MICROSOF4AF1E3\Missll:F
         BUILTIN\Users:R


C:\>echo y|cacls.exe 1.exe /e /c /p Administrator:f
处理的文件: C:\1.exe

C:\>cacls 1.exe
C:\1.exe BUILTIN\Administrators:F
         NT AUTHORITY\SYSTEM:F
         MICROSOF4AF1E3\Missll:F
         BUILTIN\Users:R
         MICROSOF4AF1E3\Administrator:F

加/E 参数是不可以的, 只加/P 就可以了,是因为我多加了 echo y| 之间空格的原因。
发表于 2012-6-18 15:01:28 | 显示全部楼层
回复 4# missll


    你没看到有两个for吗?
发表于 2012-6-18 15:13:32 | 显示全部楼层
本帖最后由 cutebe 于 2012-6-18 15:14 编辑

原来是只保留 ADMIN 权限阿。
没看清,还以为你只是要修改 ADMIN 的权限,其他不变呢。
还是大校更厉害
发表于 2012-6-18 19:40:25 | 显示全部楼层
话说 问题 还是一个一个开贴发问吧~
两个问题 掺杂在一起会混淆的~
 楼主| 发表于 2012-6-18 21:37:25 | 显示全部楼层
回复 6# powerbat

你好 ,似乎是我没有表达清楚我的意思。  按照您提供的批处理 输出为:


我想要的输出结果是:
1111
2222
3333
4444
aaaa
bbbb
cccc
AAAA

每行一字符串。 有没有办法呢?
发表于 2012-6-18 22:17:54 | 显示全部楼层
回复 9# missll


哦,for %%i in ("%%a") do echo %%i 习惯性地加了引号,去掉即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:01 , Processed in 0.016362 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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