中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 10:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]set /p 多出2個字符,求解 查看 2,493 回复 6
楼 主 [求助]set /p 多出2個字符,求解 发表于 2010-09-25 15:18 ·  中国 上海 浦东新区 电信
新手上路
积分 19
发帖 20
注册 2010-05-09 20:11
16年会员
UID 166476
性别 男
状态 离线
set /p Code=Please scan Code:
echo %code% >my.txt

當我輸入123后,發現my.txt中換行了,且多出2字符,實在不知怎么回事,請各位大俠指點一二,能否避開多出的字符,謝謝
2 发表于 2010-09-25 18:25 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
echo 本身就会多输出一个换行,而且你 %code% 和 > 还多了个空格。
用这个试试:

set /p Code=Please scan Code:
>my.txt set/p=%code%<nul
3 发表于 2010-09-27 18:50 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
不带转行,以前学到的一个用法

@echo off
set /p Code=Please scan Code:
set /p output=%code%>my.txt<nul

这样也是可以的,应该是先被<NUL 然后set/p的输出被导向my.txt了吧:
set /p output=%code%<nul>my.txt

回头一看,跟楼上重复了,那就将就骗积分哈哈

[ Last edited by 523066680 on 2010-9-27 at 18:54 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zzz19760225 +2 2017-12-03 13:18
4 发表于 2011-01-19 21:46 ·  中国 广东 东莞 中移铁通
初级用户
★★
积分 115
发帖 92
注册 2010-12-24 16:57
15年会员
UID 179794
性别 男
状态 离线
学习一下
5 发表于 2011-01-23 20:49 ·  中国 湖北 恩施土家族苗族自治州 电信
初级用户
beginner
积分 26
发帖 27
注册 2011-01-13 23:44
15年会员
UID 180774
性别 男
状态 离线
奇怪了,我用的是xp的系统在cmd下
输入楼主的代码没有换行和其他的情况的啊,就是去掉了个空格
路漫漫其修远兮~
6 发表于 2011-01-24 00:42 ·  中国 广东 佛山 顺德区 电信
初级用户
★★
积分 151
发帖 106
注册 2009-10-09 21:24
16年会员
UID 152856
性别 男
来自 河南省
状态 离线
本人复制代码也没有出现楼主的情况啊
7 发表于 2011-01-24 12:00 ·  中国 江苏 苏州 太仓市 电信
新手上路
积分 10
发帖 11
注册 2010-12-24 12:16
15年会员
UID 179776
性别 男
状态 离线
LZ,应该是在批处理环境下使用的。
我刚刚用批处理试了的确会输出两个空格。
用3楼的代码试了下,没用空格。
论坛跳转: