中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 21:59
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]批处理怎么能让字符串中包含回车符
可打印版本  2,421 / 5
第1楼 singlion 发表于 2008-12-06 20:43
初级用户 发帖 12 积分 25
[求助]批处理怎么能让字符串中包含回车符
我想用批处理弄一个文本文件分割程序,功能是实现了,代码如下:
@echo off
cls & color 79
setlocal enabledelayedexpansion

:inputfilename
set /p txtfile=请输入要分割的文件位置及文件名:
if not defined txtfile goto :inputfilename

set /p lines=请输入每多少行分割为一个文件(请输入50到300之间的数):
if not defined lines set /a lines=100

cls
set /a line=0
set /a files=1
set filename=第!files!部分.txt
mode con lines=2
echo 正在写第1个文件...
set str=
for /f "delims=" %%i in (%txtfile%) do (
set /a line+=1
set str=!str!%%i
if "!line!"=="!lines!" (
echo !str!>!filename!
cls
set /a line=0
set /a files+=1
set filename=第!files!部分.txt
echo 正在写第!files!个文件...
set str=
)
)
echo !str!>!filename!
cls
echo 完成。按任意键退出程序...
pause>nul
del c:\tmp

但是留下一个问题,分割后的文件中,所有的回车符都显示成了黑块,但仅仅在记事本里这样,在写字板和Word里面都能正常显示。 并且用写字板打开之后,不做任何改动,直接保存,然后用记事本打开又正常了......

我觉得可能是因为set str=!str!%%i造成的,可能在%%i前面加一个能表示回车符的东西就行了,希望高手看看能不能这样做。

如果有其他实现的方法,也请不吝赐教,谢谢!



转移自 DOS疑难解答 & 问题讨论 (解答室)
明显发错版块,因属论坛新手,暂不予以处罚,但注册也有一年多了,应该对论坛有所熟悉了,望今后引起注意。
——管理员
第2楼 HAT 发表于 2008-12-06 21:02
版主 发帖 5,017 积分 9,023
建议下次到批处理室提问
第3楼 hackate 发表于 2008-12-07 13:29
中级用户 发帖 125 积分 228
第4楼 lifenjoiner 发表于 2008-12-07 14:59
新手上路 发帖 12 积分 19
我的:

鉴于这确实是频繁操作(写)一个磁盘文件,就是慢~
------
另外,建议singlion代码要写得规整一些,养成好的习惯。还有,你可以用vbs。。
------

[ Last edited by lifenjoiner on 2008-12-7 at 15:08 ]
第5楼 lifenjoiner 发表于 2008-12-07 15:21
新手上路 发帖 12 积分 19
我以前的vbs
第6楼 HAT 发表于 2008-12-09 14:33
版主 发帖 5,017 积分 9,023
1年半之前的帖子,不知是否对楼主有帮助:
http://www.cn-dos.net/forum/viewthread.php?tid=31718
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023