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

[文本处理] [已解决]more命令输出到变量,求助去除显示内容的尾巴

[复制链接]
发表于 2023-9-4 23:09:18 | 显示全部楼层 |阅读模式
本帖最后由 zzz19760225 于 2023-9-5 09:54 编辑

1.txt
  1. 123
  2. 456
  3. 789
复制代码
2.bat
  1. @echo off
  2. more 1.txt ^|%a%
  3. echo:%a%
  4. pause
复制代码
执行显示
  1. 123
  2. 456
  3. 789
  4. —— More (100%) ——
复制代码
只需要
  1. 123
  2. 456
  3. 789
复制代码
请帮忙看一看,去掉这个尾巴?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-9-4 23:29:42 | 显示全部楼层
方法:
  1. @echo off
  2. for /f "delims=" %%1 in ('more 1.txt')do set /a n+=1&call set #%%n%%=%%1
  3. set #
复制代码
读取方式:
  1. for /f "tokens=2* delims==" %%1 in ('set #')do (echo %%1)
复制代码

评分

参与人数 1技术 +1 收起 理由
zzz19760225 + 1

查看全部评分

发表于 2023-9-5 08:44:32 | 显示全部楼层
楼主何苦非要用more呢。个人觉得楼上也是伪变量,是由3个变量分别接收3行字符,那样的话直接显示不就行了:
  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do echo,%%i
  3. pause
复制代码
如果文本文件字符不多的话,可以把整个文本设置为一个变量(包括换行),以前的大佬们是这样处理的:
  1. @echo off
  2. set hh=^


  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in (a.txt) do (
  5. set "str=!str!!hh!%%i"
  6. )
  7. echo,!str!
  8. pause
复制代码
上面代码中的两个空行要保留,不能删除。

评分

参与人数 1技术 +1 收起 理由
zzz19760225 + 1

查看全部评分

 楼主| 发表于 2023-9-5 09:43:30 | 显示全部楼层
本帖最后由 zzz19760225 于 2023-9-5 09:52 编辑

开始试着type 1.txt ^| %a%后面跟管道时,直接尝试用变量。然后就又想可不可以直接变量,然后只有more好些,type那个出错信息不知道怎么2>nul关闭,于是看看more有没有知道的什么参数,或其他思路。
如果直接变量最好

估计只是开始命令执行的信息,根本没有输入到变量,只是以为有输出了,变量顺序就执行了。应该问题本身就提错了,因为问题不成立。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:25 , Processed in 0.021640 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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