windows服务器bat批处理入门教程 第二课

继续接上一课,记录学习笔记

for /f提取文字信息(bat脚本如何把txt文件内容展示出来?)

新建text.txt 文件

内容:

暗恋一个人的表现

1、激动和兴奋:每次想到或见到这个人时,你可能会感到心跳加速,感到一种难以抑制的激动。

2、渴望和期待:你可能会渴望与这个人有更多的接触和交流,期待每一次可能的相遇。

3、羞涩和紧张:在暗恋对象面前,你可能会感到紧张和不自在,担心自己的言行会暴露你的感情。

4、幻想和憧憬:你可能会花很多时间幻想与这个人在一起的场景,憧憬未来可能发生的事情。

案例1:

@echo off

for /f %%I in (text.txt) do echo %%I

pause

for /f语句执行过程分析:

for循环的原理是一次处理每个元素,加上for f之后呢,也是循环显示,只不过是一行一行显示,而不是一次性把text里面的文字全部显示到屏幕上。画重点笔记:for /f是按行为单位,来处理文本的,不是一个一个字,也不是一次性全部显示,而是一行一行来处理。

默念加深一下印象吧,for /f提取文字信息!for /f提取文字信息!for /f提取文字信息!

切分字符利器:delims=(提取某个符号之前的信息,比如每行逗号之前的信息,也可以是其他=》

案例2

@echo off

for /f "delims=," %%I in (text.txt) do echo %%I

pause

巩固理解:以行为单位,每行第一个逗号之后的内容都不见了,提取每行逗号之前的所有内容。”delims=,“的含义:以逗号作为被处理的字符串的分割符号。可以是= ; 。 等其他符号

笔记:如果delims=符号列表,如果符号列表为空,就是delims=结束了,这里默认符号是空格。

这里提到了符号列表,什么是列表。就是一串,很多个符号的意思。比如delims=,!?

这样,第一个,或者第一个!或者第一个?之前的内容都被提取出来了。

逐行读取text文本种的内容,以,和!和?分割每一行,如果该行不存在这三个符号,则无需处理,如果该行有,!?那么代码指挥读取第一个分隔符里面的内容。for /f默认提取第一个分隔符分割的字符串

案例:

text文件:

上班路上和卢瑟一起聊天,emmm

他说宝龙城有一家米粉店。很正宗 (路上就开始流口水了)

好像是一家桂林米粉店。炝锅米粉?哈哈具体没听清楚。

今天中午准备去宝龙城尝尝。hahaha

我问价格怎么样?心里想会不会很贵,lol

emmm?...

超过30就不去了!预算提高一点。平时都是15

案例3

@echo off

for /f "delims=,?" %%I in (text2.txt) do echo %%I

pause

delims= 这个参数,如果指定了多个分隔符,如果一行里面有多个分隔符,他只可以提取第一个分隔符前面的内容,那如果我们要提取的信息在第二个,第三个分隔符上怎么办呢,定点提取 tokens=来咯

tokens=1,2,3

来背一首诗吧

text内容:

红豆生南国,春来发几枝。愿君多采撷,此物最相思。

提取此物最相思

案例4

@echo off

for /f "delims=, tokens=3" %%I in (text3.txt) do echo %%I

pause

注意=,与tokens中间有个空格..

那如果把红豆生南国,和此物最相思都提取出来呢

案例5

@echo off

for /f "delims=, tokens=1,3" %%I in (text3.txt) do echo %%I %%L

pause

这里需要说明:

tokens=1,3这里有两个变量值, %%I %%L后面就需要指定两个值来接受,就是1被I接受了

3被L接受。如果tokens=1,2,3,4 那就需要指定是个变量 %%I %%L %%M %%N 分别来接受1234的值

text:

《相思》是唐代诗人王维的诗作。此诗借咏物而寄相思,全篇不离红豆,正用其相思子之名以关合相思之情。

首句写红豆产地;次句以“发几枝”一问,语极朴实,而又极富形象性,设问自然,则暗逗情怀;三句寄意友人“多采撷”,

言在此而意在彼;末句点明其相思属性,且用一“最”字推达极致,则“多采撷”的理由自见,而自身所寄之意亦深含其中。

全诗风格明快,却又委婉含蓄,语浅而情深,相传当时即为人谱曲传唱,流行江南。

案例6

@echo off

for /f "delims=, tokens=1-5,8" %%I in (text3.txt) do echo %%I %%J

pause

连续的数字,可以用短岗简写比如12345可以写成1-5 

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows下,可以使用bat批处理脚本来批量检测远程端口。Telnet是一种远程终端连接服务,可以通过它来连接到远程主机的特定端口。以下是一个使用Telnet命令在批处理脚本中批量检测远程端口的例子: @echo off setlocal set ip_list=file_path\ip_list.txt set port=80 for /f %%i in (%ip_list%) do ( telnet %%i %port% | find "Connected" > nul if errorlevel 1 ( echo %%i:%port% is closed ) else ( echo %%i:%port% is open ) ) pause 在以上示例中,首先我们定义了要检测的IP列表文件的路径,即ip_list.txt文件,然后我们设定了要检测的端口号,此处设定为80端口。接着使用for循环读取ip_list.txt文件中的每个IP地址。 在每次循环中,我们使用telnet命令连接到远程主机的指定端口。如果端口成功连接,则表示端口是开放的,telnet命令的输出会包含"Connected"关键字。我们使用find命令查找telnet命令的输出中是否包含"Connected"关键字。 如果find命令找到了"Connected"关键字,则说明端口是开放的,我们将显示"IP地址:端口号 is open"的消息。否则,即端口未连接,我们将显示"IP地址:端口号 is closed"的消息。 最后,我们使用pause命令来暂停脚本的运行,以便我们可以查看检测结果。 需要注意的是,Telnet命令在默认情况下可能未启用,需要手动在Windows设置中启用Telnet客户端功能。此外,Telnet命令在Windows 10及更高版本中可能已被淘汰,可以考虑使用其他工具如ncat或PowerShell来代替Telnet命令进行远程端口检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值