中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 13:31
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]怎样用bat对齐文本?
可打印版本  6,126 / 30
第16楼 ccwan 发表于 2006-12-14 02:59
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
求解:
无奈何兄,试过兄的代码,发现显示内容缺少第一行,不知何故?
第17楼 无奈何 发表于 2006-12-14 03:23
荣誉版主 发帖 356 积分 1,338
我这里没有问题啊,少了哪一行?
有点小问题,空行也会输出,修正一下。
第18楼 ccwan 发表于 2006-12-14 03:31
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
新代码没有问题了!
请问增加if语句是什么意思?
第19楼 HUNRYBECKY 发表于 2006-12-14 03:43
银牌会员 发帖 442 积分 1,179
Originally posted by youxi01 at 2006-12-14 01:18:
因为::在vbs中可以被认识(识别为换行),而rem却不能被vbs认识!


youxi01兄,我真不知有如此用法,但是我是把你的代码保存在BAT文件而非VBS文件中,我也曾试着保存到VBS中,但无法运行。这又是何故?
第20楼 HUNRYBECKY 发表于 2006-12-14 04:03
银牌会员 发帖 442 积分 1,179
Originally posted by youxi01 at 2006-12-13 08:03:
个人认为,纯粹的P很难实现,因为P很难判断变量的字节数,所以要借助于vbs。
第21楼 无奈何 发表于 2006-12-14 04:03
荣誉版主 发帖 356 积分 1,338
Originally posted by ccwan at 2006-12-14 03:31:
新代码没有问题了!
请问增加if语句是什么意思?

加上这条判断语句后,空行就不会输出了。小问题是空白行(只含有空格的行)还是会输出的,只需将 if(R != "") 改为 if(R != "") 能解决空白行的问题。
第22楼 ccwan 发表于 2006-12-14 04:07
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
谢谢。
看来有必要学学了。
第23楼 pengfei 发表于 2006-12-14 04:41
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
zg159兄和无奈何兄的代码精彩, 更通用. 而用文件大小判断字节数是更为省事的方法.

当时分析楼主给的三行代码, 初步得到规律写的代码自然不能计算中文字符的英文字符的字节差别. 也想用文件大小判断, 出于对生成临时文件的敏感, 故只针对1F三行代码做处理.

而除了zh159兄8F用文件大小判断字节数外还有其他方法, 不用生成临时文件. 但效率会很低, 为了扩展思路, 熟悉不同的算法, 大家可以尝试使用下面的算法实现对中文汉字和英文字符的判断.

一、用for列举出要匹配的字符, 一旦匹配成功, num+1。

二、FOR循环执行完毕, 开关如没关闭则判断其为汉字,故num+2。

三、整个嵌套循环执行完毕, 计算num的值进行空格填充。

希望大家能写出更加精彩的代码,用灵活的思路,更先进的算法,弥补P处理脚本功能上的不足, 带动本论坛的发展^_^
第24楼 youxi01 发表于 2006-12-14 04:42
高级用户 发帖 247 积分 846 来自 湖南==》广东
Originally posted by HUNRYBECKY at 2006-12-14 03:43 AM:


youxi01兄,我真不知有如此用法,但是我是把你的代码保存在BAT文件而非VBS文件中,我也曾试着保存到VBS中,但无法运行。这又是何故?


一定要保存为bat文件,因为它是针对P处理的!
第25楼 youxi01 发表于 2006-12-14 04:46
高级用户 发帖 247 积分 846 来自 湖南==》广东
Originally posted by HUNRYBECKY at 2006-12-14 04:03 AM:



能否解释下在BAT中编写VBS脚本并运行的机理,一点都看不懂是怎么执行的,谢谢!


在P处理中,会忽略::打头的行(认为是解释语句),而当它作为vbs运行时,却可以被识别;同时,在vbs中,会认为 ' 后面的内容为注释内容......

参看:http://www.cn-dos.net/forum/viewthread.php?tid=25333&fpage=1&highlight=%E8%AF%86%E8%B4%A7&page=1
第26楼 vkill 发表于 2006-12-14 05:37
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
还是awk的效果好觉得
第27楼 cdswf 发表于 2008-05-13 11:10
新手上路 发帖 2 积分 4
Originally posted by youxi01 at 2006-12-13 08:03 AM:
个人认为,纯粹的P很难实现,因为P很难判断变量的字节数,所以要借助于vbs。
第28楼 cdswf 发表于 2008-05-21 10:23
新手上路 发帖 2 积分 4
ding!顶到出答案为止!!
第29楼 bat-zw 发表于 2008-05-21 10:48
金牌会员 发帖 1,276 积分 3,105
答案:
因论坛处理不了TAB,请运行前将!str!后面的空格改为TAB。
第30楼 26933062 发表于 2008-05-21 11:46
银牌会员 发帖 879 积分 2,268
29 楼
zw19750516 兄想简单了。
先测试以下代码
@echo off
echo aaaaaaa bbbbbbbbb
echo aaaaaaaa bbbbbbbbb
echo aaaaaaaaaaaaaaaaa bbbbbbbbb
pause

更何况是中英文混合的。。。。。。。。。。
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023