今天用批处理写一段自动设置网络连接的代码(利用批处理设置网络连接参数),遇到一个关于格式化输出的问题。如下图,这是打印出来的选择菜单
虽然不影响正常使用,但格式对不齐看着很难受!想了很久,总算想到了如何解决这个问题。
对不包含中文字符的字符串长度的格式化处理
这个相对比较简单,只需定义一个blank变量,令它等于一串空格,然后加在要格式化长度的字符串后面,最后利用echo %str:~m,n%的方式来格式化长度输出。代码形如:
|
|
对于包含中文的字符串长度格式化处理
由于在批处理中一个中文按一个字符算,所以当直接用echo %str:~m,n%的方式截取含有中文的字符串时往往是对不齐的。批处理中又没直接含有获取字符串长度的函数,所以很难通过补空格的方式来使长度对齐。我思考了良久,觉得下面的方法还不错。如果有更好的方法,尽情不吝赐教!
首先定义一个不用的全角符号,比如▁,当然其他也可以,关键是要在字符串中不出现。
然后把要长度格式化的字符串后面加上一个这个符号。 利用%str:~m,n%的方式进行截取,以得到指定的长度。 最后利用%str:▁= %把▁替换为两个空格,这样就完成了含有中文的字符串长度的格式化处理。
代码形如:
|
|