![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-29 08:03 |
共 47,816 主题排行 / 349,916 发帖 / 今日 0 篇 / 48,265 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理实现输出退行(第二篇) |
| 可打印版本 5,497 / 32 |
| 第1楼 scriptor | 发表于 2006-12-28 15:50 |
| 银牌会员 发帖 555 积分 1,187 | |
|
批处理实现输出退行(第二篇) 怎么写这个文件?
它的目的是,在同一行输出,不另起一行 比如: echo a >t.txt 那么在t.txt中就有了一行显示了 a 现在问题来了, echo b >t.txt b在文件t.txt 中另起了一行,那么怎么做才能让它紧跟着 a 前显示即: ba 这篇文章与我上次发的有不同哦。 第一篇为:http://www.cn-dos.net/forum/viewthread.php?tid=25963&fpage=1 我想了很久也没有想到,请帮忙!!谢了 [ Last edited by scriptor on 2006-12-28 at 02:51 AM ] |
|
| 第2楼 NaturalJ0 | 发表于 2006-12-28 21:13 |
| 银牌会员 发帖 533 积分 1,181 | |
|
set /p =a<nul>a.txt
set /p =b<nul>>a.txt |
|
| 第3楼 ccwan | 发表于 2006-12-28 21:34 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
NaturalJ0兄
楼主是想要先输入a,再输入b,但b在a前。 |
|
| 第4楼 HUNRYBECKY | 发表于 2006-12-28 21:42 |
| 银牌会员 发帖 442 积分 1,179 | |
|
反响操作就可以了
set /p =b<nul>a.txt set /p =a<nul>>a.txt |
|
| 第5楼 jmz573515 | 发表于 2006-12-28 21:55 |
| 银牌会员 发帖 464 积分 1,212 | |
|
不知道能不能把a.txt读到变量,这样可以先把a写入之后读到变量,之后重新写入b.在写入变量就可以了,可是我不会,只能说一下自己的思路.
|
|
| 第6楼 redtek | 发表于 2006-12-28 22:49 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
(“连续” Type 命令读两个文件,按顺序将它们“连成一体”定向写入到另一个文件。) (不带换行符内容的文件,由 set/p 建立) 那么 demo.txt 内容就会为 "BA" 要不就 copy /b ....或是 For ... 或是 “反---瞎起的名字” 定向操作…… run.bat 内容如下: 另类使用上面建的代码方法:
[ Last edited by redtek on 2006-12-28 at 09:55 AM ] |
|
| 第7楼 scriptor | 发表于 2006-12-28 22:59 |
| 银牌会员 发帖 555 积分 1,187 | |
Originally posted by HUNRYBECKY at 2006-12-28 08:42: 不能反向输入啊,我的本意是先输入a,然后输入b的时候, 使得b放在a的前面。如果你先输入b就没有我的含义了。 |
|
| 第8楼 scriptor | 发表于 2006-12-28 23:19 |
| 银牌会员 发帖 555 积分 1,187 | |
|
看来这个难以实现??
是吗? 有人回答吗? |
|
| 第9楼 PPdos | 发表于 2006-12-29 00:12 |
| 高级用户 发帖 268 积分 783 | |
|
很多人也想到了吧? @echo off
:x set /p b=输入的字符: echo %b%>>k.txt set /p a=<k.txt&echo %b%%a%>k.txt set /p a=<k.txt&echo %b%%a%>k.txt goto x pause>nul [ Last edited by PPdos on 2006-12-28 at 11:30 AM ] |
|
| 第10楼 lxmxn | 发表于 2006-12-29 00:23 |
| 版主 发帖 4,938 积分 11,386 | |
|
一个变通的方法: 假设文件a.txt中已经有"cn-dos"字符了,要在在前面加上"www",可以在命令行这样操作: |
|
| 第11楼 NaturalJ0 | 发表于 2006-12-29 00:39 |
| 银牌会员 发帖 533 积分 1,181 | |
|
= =b 不好意思,看错楼主意思了。
echo a>t.txt set /p tempvariable=<t.txt echo b%tempvariable%>t.txt 如果你只有一行的话,可以这样。 |
|
| 第12楼 scriptor | 发表于 2006-12-29 00:58 |
| 银牌会员 发帖 555 积分 1,187 | |
|
谢谢各位了
|
|
| 第13楼 rochan | 发表于 2006-12-29 01:55 |
| 初级用户 发帖 14 积分 40 | |
|
9楼代码有点误差..依次输入 1 2 3 4 5 6 7 8 后 k.txt文件中 会出现 8642打开 ECHO。...而不是 87654321
我改了一下..测试过了.成功!! 代码如下: |
|
| 第14楼 ccwan | 发表于 2006-12-29 02:12 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
这倒让我想起那个输出倒文的批处理了。^_^
|
|
| 第15楼 vkill | 发表于 2006-12-29 02:41 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
如果单是实现这样的,下面用sed的实现:
>t.txt (echo a) set "var=b" sed "1i\%var%" t.txt|sed "$!N;s/\n//"|more>t1.txt type t1.txt |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |