中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 04:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何利用批处理追加不换行 查看 1,961 回复 8
楼 主 如何利用批处理追加不换行 发表于 2007-04-09 23:01 ·  中国 陕西 汉中 电信
初级用户
积分 136
发帖 49
注册 2007-01-04 08:28
19年会员
UID 75413
性别 男
状态 离线
09165365064|
09165365097|
09165368188|
09165364018|
09165364091|
09165364380|
09165364491|
。。。。。。。。
。。。。。。。。
要将上面号码批处理成下面这个样子怎么办?
09165365064|09165365097|09165368188|09165364018|09165364091|09165364380|09165364491。。。。。。。。。。。。。。
就是说在追加的时候不换行!


就是说原来的电话号码是一行一个,现在要将所有号码合在一起,号码与号之间用"|"竖线隔开并且不换行的保存到别一个记事本里!

[ Last edited by beeny on 2007-4-9 at 11:50 AM ]
附件
1.JPG
2 发表于 2007-04-10 00:28 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
问题描述不清,无法解答。

可以试试for循环加设置环境变量(但不知道环境变量会不会有大小限制)。

或者试试lmod这个命令。

或者试试使用十六进制替换命令将ODOA替换为无。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2007-04-10 01:02 ·  中国 陕西 汉中 电信
初级用户
积分 136
发帖 49
注册 2007-01-04 08:28
19年会员
UID 75413
性别 男
状态 离线
setlocal enabledelayedexpansion
for /f %%a in (E:\123.txt) do set fn+=%%a
@echo !fn!>>c.txt

上面代码是按VB的意思写的但是运行不对啊!达不到我想要的效果!
4 发表于 2007-04-10 01:11 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
>>life set/p=^abc<nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
beeny +2 2007-04-11 12:18
5 发表于 2007-10-24 15:26 ·  中国 上海 浦东新区 电信
初级用户
★★
积分 196
发帖 82
注册 2005-09-26 11:31
20年会员
UID 42842
状态 离线
真不容易,找到这么个与我问题很像的问题。

我的问题是比beeny的要求稍微再高一点点,就是追加不換行,而且还要隔开,需要加入数个tab或是空格;用set /p=虽然能不换行,但死活无法插入空格或是tab,若是用了echo,就直接换行了。

用beeny的实例来讲就是要实现这样:
09165365064 09165365097
09165368188 09165364018
09165364091 09165364380
…………

即每行中第二列数字是运算出来的,希望被tab隔开,追加到行尾。
6 发表于 2007-10-24 22:37 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off&Setlocal EnableDelayedExpansion

for /f "delims=" %%a in (1.txt) do (
set /a a+=1
set /a b=a%%2
if !b!==0 (echo %%a) else (set/p=%%a <nul)
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zhclsy +1 2007-10-25 09:53
7 发表于 2007-10-25 08:23 ·  中国 上海 浦东新区 电信
初级用户
★★
积分 196
发帖 82
注册 2005-09-26 11:31
20年会员
UID 42842
状态 离线
谢谢lxmxn的指点!

在我的实例中,第一列的长度是不固定的(人名),导致最后生成的部分不整齐,所以之前的问题是用空格或tab隔开,所以就想请教剩下的这个很久以来一直好奇的问题:

可以用tab做为分隔符吗?是否能动态(或根据其它变量来决定)生成不定个数的tab做分隔符?

[ Last edited by pillow on 2007-10-25 at 08:29 AM ]
8 发表于 2007-10-25 08:33 ·  中国 上海 浦东新区 电信
初级用户
★★
积分 196
发帖 82
注册 2005-09-26 11:31
20年会员
UID 42842
状态 离线
以前都是在cmd中想直接echo出tab来的,所以没能成功。
自己刚才试过了,可以直接在编辑BAT文件set/p=%%a <nul时的a与<之间直接输入tab,就能显示出来了。


现在问题剩下的就是:
是否能动态(或者说根据其它变量的值来决定)生成特定个数的tab做分隔符?
9 发表于 2007-10-25 09:54 ·  中国 台湾 中华电信(HiNet)数据中心
初级用户
积分 83
发帖 34
注册 2007-10-14 13:49
18年会员
UID 99713
性别 男
状态 离线
呵呵,很好呀
论坛跳转: