无忧启动论坛

标题: 怎么用for/f命令提取文本TXT的前三列? [打印本页]

作者: bjay2008xmy    时间: 2022-8-15 23:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: DOSforever    时间: 2022-8-16 00:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: bjay2008xmy    时间: 2022-8-16 01:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: dos时代菜鸟    时间: 2022-8-16 10:10
本帖最后由 dos时代菜鸟 于 2022-8-16 10:18 编辑

这是前三行
嘚设置计数器,跳转。
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set n=0
  4. for /f "delims=" %%c in (test.txt) do (
  5.     SET /A n=!n!+1
  6.     echo !n!....%%c
  7.     if !n! equ 3 goto :end1
  8. )
  9. :end1
  10. pause
复制代码

这是前三列
不用计数器
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1-3 delims= " %%c in (test.txt) do (
  4.     echo %%c %%d %%e
  5. )
  6. pause
复制代码






作者: bjay2008xmy    时间: 2022-8-16 11:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 窄口牛    时间: 2022-8-16 12:07
dos时代菜鸟 发表于 2022-8-16 10:10
这是前三行
嘚设置计数器,跳转。


不错,这个示例非常好。
作者: nttwqz    时间: 2022-8-16 13:59
dos时代菜鸟 发表于 2022-8-16 10:10
这是前三行
嘚设置计数器,跳转。


set /a n+=1不是更简单
set /a有一个特性,可以省略变量符号
set /a n=n+1
set /a c=a+b

作者: dos时代菜鸟    时间: 2022-8-16 15:21
bjay2008xmy 发表于 2022-8-16 11:06
第一个执行结果不对
1....11 22 33 44 55 66 77 88 99
2....22 33 44 55 99 44 22 11 33



前面那个
1...
2...
3...
是 行号
作者: dos时代菜鸟    时间: 2022-8-16 15:22
nttwqz 发表于 2022-8-16 13:59
set /a n+=1不是更简单
set /a有一个特性,可以省略变量符号
set /a n=n+1


作者: bjay2008xmy    时间: 2022-8-16 15:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: dos时代菜鸟    时间: 2022-8-16 16:27
bjay2008xmy 发表于 2022-8-16 15:59
这个运行结果是错误的,怎么把全部内容都搞出来了,只要每行前三列就行了
@echo off
    setlocal  ...

我那个 是显示 前三行,不是前三列。我在代码前面说了。
作者: bjay2008xmy    时间: 2022-8-16 17:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: nowayer    时间: 2023-11-13 11:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2012飘水    时间: 2024-4-6 23:57
学习了,感谢
作者: szwp    时间: 2024-4-7 08:09
echo %%i 只会显示一列,打for/?看一下范例




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3