中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-27 23:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【难】不生成临时文件,让两个cmd“对话” 查看 4,084 回复 22
16 发表于 2008-12-28 14:39 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
貌似要开启服务才行
17 Re 15楼 发表于 2008-12-28 20:45 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
如果人家本来有些很重要的计划任务在运行,你这样不管三七二十一全都给删除了,不太好吧。
18 发表于 2008-12-28 22:08 ·  中国 广东 江门 电信
中级用户
★★
积分 338
发帖 175
注册 2007-10-21 15:30
18年会员
UID 100351
性别 男
状态 离线
貌似能改进吧

但是局限性就在于要开启服务
19 发表于 2008-12-30 06:54 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
首先得确定这两个CMD的关系,是并行进程,还是继承进程
继承关系就不用再说了,方法很多,并行的,楼主也讲了,可以通过全局环境变量来传递,这个其实是可行的,因为变量更改是在另一个CMD进程中提交的,所以在当前CMD进程中并没有直接刷新(通常是赋值才会刷新),也是一个变量扩展延时的问题,在试验时可以使用call set 本地变量=全局变量 来获取实时更新
49206C6F766520796F752067757973 54656C3A3133383238343036373837
20 已经改进 发表于 2008-12-31 18:01 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
batch1

:batch1
@echo off
title batch1
start batch2.bat
for %%a in (在不 好像没人 Exit) do (
ping -n 2 127.1>nul
at %time:~0,-3% ImBatch1 %%a >nul 2>nul
)



batch2

@echo off
(title batch2)&(mode con cols=20 lines=10)
:batch2
ping -n 1 127.1>nul
for /f "tokens=1,5*" %%a in ('at ^|find " ImBatch1 "') do (set "n=%%a" &set "info=%%b")
if /i "%info%"=="exit" (at %n% /del &exit)
::如果%n%非空,说明找到了ImBatch1发来的信息.
if not "%n%"=="" (
echo,%info%
at %n% /del
set "info="
set "n="
)
goto :batch2



[ Last edited by 523066680 on 2009-1-1 at 11:09 ]
21 试了好久,找到一个好方法 发表于 2009-03-01 03:36 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
::可以传递72个字/次,不区分中英文

;main.bat
@echo off
::置唯一标题
title benton
::取指定程序的PID,保存备用
for /f "tokens=2" %%a in ('TASKLIST /FI "WINDOWTITLE eq benton*" /fo "table" /nh') do set PID=%%a


start /b bbba.bat

:lp
title %date% %time:~0,-3%
ping 127.1 -n 2 >nul

::根据保存的PID取标题信息
for /f "tokens=9*" %%a in ('TASKLIST /FI "pid eq %PID%" /v /nh') do set mesg=%%b
if /i not "%mesg:~0,4%"=="quit" goto :lp
echo.正常退出
goto :eof

;bbba.bat
echo.动态标题时种演示
pause
set 变量=quit

::送交换信息
title %变量%
goto :eof
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
moniuming +15 2009-03-01 06:11
523066680 +15 2009-03-03 05:36
精简
=> 个人网志
22 发表于 2009-03-03 05:36 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
23 发表于 2009-03-03 11:52 ·  中国 吉林 长春 电信
新手上路
积分 10
发帖 7
注册 2009-03-01 06:46
17年会员
UID 140264
性别 男
状态 离线
一堆强人...
论坛跳转: