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

[文件操作] 求教批处理type, for /f 命令的几个问题。

[复制链接]
 楼主| 发表于 2022-6-2 21:15:05 | 显示全部楼层
回复 15# Batcher



1
感谢大神!


2
非常有帮助!
 楼主| 发表于 2022-7-17 19:59:18 | 显示全部楼层
回复 3# Batcher



比如读取第20行:


@echo off
for /f "skip=19 delims=" %%a in ('type "1.txt"') do (
    echo,%%a
    goto :Next
)
:Next
pause


1,
感谢大神!


2,
你的这个语句,不是只读取第20行吧?


3,
应该是,跳过前面的19行,从第20行开始往后读取每一行吧?


4,
这个差别,很大啊!


5,
鄙人理解的对吗?
请指点!谢谢!
 楼主| 发表于 2022-7-17 20:28:36 | 显示全部楼层
回复 11# qixiaobin0715



这些问题论坛里都有教程,慢慢学习即可。多个指定行,比如第5、20、101行:


@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* 1.txt^|findstr /b "5: 20: 101:"') do (
    echo,%%b
)
pause


1,
感谢大神!


2,
其中的 findstr /b "5: 20: 101:" ,假如,要找的字符串是 ab c 或 ab d 或 ab e ,
这样的3个中间有空格的字符串,用 findstr 命令,该如何表达呢?


3,
困扰了多时,请大神指点!
发表于 2022-7-18 10:06:20 | 显示全部楼层
回复 17# smatenchen


    不要瞎猜,请亲自测试一下,看看结果如何。
发表于 2022-7-18 11:22:31 | 显示全部楼层
回复 18# smatenchen
这样的话,可以不用for循环:
  1. findstr /c:"ab c" /c:"ab e" /c:"ab f" 1.txt
复制代码
 楼主| 发表于 2022-7-19 19:36:05 | 显示全部楼层
回复 19# Batcher



1,
感谢大神!


2,
鄙人以前在第7楼,已回复过你了。


3,
近日,忽然又来逛一下了,就又发问了。


4,
只顾看for循环了,没留意你使用了goto语句。
 楼主| 发表于 2022-7-19 19:44:19 | 显示全部楼层
回复 20# qixiaobin0715



1,
感谢大神!


2,
鄙人在帖里发问的那天的晚些时候,也试出了可以用多个/c:"ab e"这样的语句,来做或选。


3,
感谢提供解题方法!
发表于 2022-7-22 14:49:24 | 显示全部楼层
回复 13# smatenchen


    以下链接的“改进版ReadLine.bat”对%1、%2、%3有解释,并且消除原版中的部分缺陷
    http://bbs.bathome.net/redirect. ... 7170&ptid=63161
 楼主| 发表于 2022-7-22 15:13:27 | 显示全部楼层
回复 23# hfxiang

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 20:33 , Processed in 0.019818 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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