中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 23:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何把当前输出到屏幕的结果输出到文件 查看 1,009 回复 7
楼 主 [已结]如何把当前输出到屏幕的结果输出到文件 发表于 2008-12-20 16:03 ·  中国 广东 佛山 联通
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
for /l %%a in (1 1 10) do (set /p=ok 0>nul)

1.我用Set /p向屏幕输出了10个"ok",要怎么做才能把这10个"Ok"一起保存到一个文本文件中呢?如执行了以上命令后就输出:ok ok ok ok ok ok ok ok ok ok
我想取出"ok ok ok ok ok ok ok ok ok ok"保存到文件中去.
2.能解释一下这个命令的意思吗:set /p=ok 0>nul ,我只知道Set /p 可以等待用户的输入,而set /p中没有变量,是不是就是把ok放到当前屏管道上?0>nu又l是怎么一回事呢?
希望各位高手帮帮忙,谢谢了.



———————————————————————
转移自 DOS疑难解答 & 问题讨论 (解答室)
明显发错版块,扣分予以警示。
——管理员
———————————————————————


[ Last edited by HAT on 2008-12-20 at 22:18 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
DOSroot -2 2008-12-20 16:07
2 发表于 2008-12-20 16:33 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
本版搜索以下内容:
重定向
句柄
>nul
>nul 2>nul

Q: 如何使用论坛的搜索功能来解决自己的问题?
A: 参考:http://www.cn-dos.net/forum/viewthread.php?tid=44122#pid308085
3 发表于 2008-12-20 18:09 ·  中国 广东 佛山 联通
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
HAT版主,我就是不知道nul控制台向输入设备循环10次输出结果后,,再用什么方法他们这10次得到的结果一起重写定向到文件中去.
4 发表于 2008-12-20 18:21 ·  中国 广东 佛山 联通
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
如,我再加个循环,,,我把第一次循环的10个OK输出为一行,,第二输出10个0k1又是一行,,,如果我直接 >文件.txt 那它们就是一行一行的了。。
5 发表于 2008-12-20 19:53 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
是这个意思么?
@echo off
for /l %%a in (1 1 10) do (
set /p=ok <nul>>a.txt
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +2 2008-12-20 20:45
6 发表于 2008-12-20 20:49 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
呵呵。谢谢HAT版主了,
@echo off
for /l %%i in (1 1 10) do (
for /l %%a in (1 1 10) do (
set /p=ok%%i <nul>>a.txt
)
echo. >>a.txt
)
pause

还是要自己加个换行
我开始是这样想的可不可以用什么方法一次取出这10个OK,之后再一次写入文件中,不用一次一次的写进文件,要是没有方法这样也行了。。反正也是用改其它语言的程序来学习的,呵呵。。谢谢版主了。
7 发表于 2008-12-20 23:33 ·  中国 浙江 杭州 阿里云
初级用户
积分 31
发帖 17
注册 2008-01-04 12:50
18年会员
UID 107637
性别 男
状态 离线
用延迟的方法先把十个 “ok” 组合起来然后在输出试一试
思路是这样的 我试了一下没写出来 高手应该可以的。
8 Re 7楼 发表于 2008-12-21 11:49 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
是这个意思么?
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 10) do (
set row=
for /l %%a in (1 1 10) do (
set row=!row! ok%%i
)
echo.!row!>>a.txt
)
论坛跳转: