无忧启动论坛

 找回密码
 注册
搜索

如何用批处理把同一批处理的列表加入for处理

查看数: 6591 | 评论数: 10 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-8-4 10:33

正文摘要:

现在不希望联网的软件越来越多了,想用同一批处理(不要 >> temp.txt) 把列表中的文件加入阻挡防火墙里。 (目前是另外用文件.txt)的方式,但希望能用同一批理处理完成。 title 防火牆阻擋列表 @echo off cm ...

回复

窄口牛 发表于 2019-8-5 18:09:33
即使可以上网的软件,也不是它所有的exe都需要上网,,那些也需要禁止的。有的exe甚至应该拒绝它运行。
dos时代菜鸟 发表于 2019-8-5 16:51:07
guies 发表于 2019-8-5 09:34
可以用了,很多
像 Diskgenius 无广告版的
启动时还是会联网,像这种无需联网的软件,

for /f   有 delims= 参数用于设置 隔断,设置单词隔断为空,就可以了,会把整行内容作为 %%i
dos时代菜鸟 发表于 2019-8-5 09:24:32
nttwqz 发表于 2019-8-4 23:47
汗!

你是不是想将一个或多个软件安装目录及子目录下的所有程序禁止联网?

他可能不想 dir *.exe /b /s /a-d  
是想通过 totalcmd 之类的软件 导出一个文件列表,又想把文件列表融入 cmd 脚本,而不单独存在。
nttwqz 发表于 2019-8-4 23:47:52
guies 发表于 2019-8-4 14:46
这个方式可行,但有没有辨法
c:\Program Files\test\test1.exe
c:\Program Files\test\test2.exe

汗!

你是不是想将一个或多个软件安装目录及子目录下的所有程序禁止联网?

你这个?都批处理了那还能一行一行敲?!

点评

他可能不想 dir *.exe /b /s /a-d 是想通过 totalcmd 之类的软件 导出一个文件列表,又想把文件列表融入 cmd 脚本,而不单独存在。  详情 回复 发表于 2019-8-5 09:24
dos时代菜鸟 发表于 2019-8-4 22:28:39
本帖最后由 dos时代菜鸟 于 2019-8-4 22:40 编辑

大概就是这个意思
for 读取本文件的第6行以后的部分


  1. title 防火牆阻擋列表
  2. @echo off
  3. for /f "skip=6 delims=" %%i in (' type "%~dpnx0" ') do netsh advfirewall firewall add rule name="%%~nxi" dir=out program=%%i action=block remoteip=any
  4. goto :eof

  5. :BlockFirewall
  6. c:\Program Files\test\test1.exe
  7. c:\Program Files\test\test2.exe
  8. c:\Program Files\test\test3.exe
  9. c:\Program Files\test\test4.exe
  10. c:\Program Files\test\test5.exe
复制代码

点评

for 读取本文件的第6行以后的部分 这个是可行 不过 c:\Program Files\test\test1.exe 还是得加上 "c:\Program Files\test\test1.exe" 才行。 dir /b /s *.exe 和 Total Commander 复制文件名是不会加上去的。  详情 回复 发表于 2019-8-5 09:34
junyee 发表于 2019-8-4 17:33:55
可以用伪标签列表 + findstr获取行号 + skip行数.
guies 发表于 2019-8-4 14:46:19
nttwqz 发表于 2019-8-4 12:17
()里面的内容是可是多行写的,不是只能一行

这个方式可行,但有没有辨法
c:\Program Files\test\test1.exe
c:\Program Files\test\test2.exe
这样就行,而不需要
"c:\Program Files\test\test1.exe"
"c:\Program Files\test\test2.exe"
因为 Total Commander 我可以搜寻整个文件夹的 .exe
然后复制全部的路径和档名,但它并没有加上 " " 这种功能。

点评

汗! 你是不是想将一个或多个软件安装目录及子目录下的所有程序禁止联网? 你这个?都批处理了那还能一行一行敲?!  详情 回复 发表于 2019-8-4 23:47
黑中见白 发表于 2019-8-4 13:12:13
用 simplewall 好啦
nttwqz 发表于 2019-8-4 12:17:44
()里面的内容是可是多行写的,不是只能一行
  1. for %%a in (
  2.     a
  3.     b
  4.     c
  5.     d
  6. ) do echo %%a
复制代码

点评

这个方式可行,但有没有辨法 c:\Program Files\test\test1.exe c:\Program Files\test\test2.exe 这样就行,而不需要 "c:\Program Files\test\test1.exe" "c:\Program Files\test\test2.exe" 因为 Total Comma  详情 回复 发表于 2019-8-4 14:46

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 00:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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