Board logo

标题: 如何利用批处理追加不换行 [打印本页]

作者: beeny     时间: 2007-4-9 23:01    标题: 如何利用批处理追加不换行

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: 1.JPG (2007-4-10 00:32, 77.68 K,下载次数: 2)



作者: Climbing     时间: 2007-4-10 00:28
问题描述不清,无法解答。

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

或者试试lmod这个命令。

或者试试使用十六进制替换命令将ODOA替换为无。
作者: beeny     时间: 2007-4-10 01:02
setlocal enabledelayedexpansion
for /f %%a in (E:\123.txt) do set  fn+=%%a
@echo !fn!>>c.txt

上面代码是按VB的意思写的但是运行不对啊!达不到我想要的效果!
作者: vkill     时间: 2007-4-10 01:11
>>life set/p=^abc<nul
作者: pillow     时间: 2007-10-24 15:26
真不容易,找到这么个与我问题很像的问题。

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

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

即每行中第二列数字是运算出来的,希望被tab隔开,追加到行尾。
作者: lxmxn     时间: 2007-10-24 22:37

@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)
)

作者: pillow     时间: 2007-10-25 08:23
谢谢lxmxn的指点!

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

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

[ Last edited by pillow on 2007-10-25 at 08:29 AM ]
作者: pillow     时间: 2007-10-25 08:33
以前都是在cmd中想直接echo出tab来的,所以没能成功。
自己刚才试过了,可以直接在编辑BAT文件set/p=%%a                <nul时的a与<之间直接输入tab,就能显示出来了。


现在问题剩下的就是:
是否能动态(或者说根据其它变量的值来决定)生成特定个数的tab做分隔符?
作者: zhclsy     时间: 2007-10-25 09:54
呵呵,很好呀