中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 11:33
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】关于批处理下程序执行过程中如何提供输入 查看 1,817 回复 8
楼 主 【求助】关于批处理下程序执行过程中如何提供输入 发表于 2005-08-02 21:52 ·  中国 广西 北海 电信
初级用户
积分 133
发帖 10
注册 2005-01-16 00:00
21年会员
UID 35376
性别 男
状态 离线
各位大大:
我写了一个测试程序(passwd),功能是这样的:
在dos下键入程序名passwd,会要求输入密码:
Please input the password:
然后需要通过键盘输入password才能出现欢迎字面并退出,
但在应用中总是需要输入太麻烦,我想写一个批处理来实现自动输入密码,
试了很多方法都不行,还请各位大大不吝赐教!


已经试过的方法有: 文件重定向,管道
echo password | passwd
passwd < 1.txt 其中1.txt文件中保存有密码
2 发表于 2005-08-02 22:27 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
试试用Kpush:

kpush password
passwd
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
3 发表于 2005-08-02 23:20 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re siyuer:

  如果可能,你可以更改你的源程序,使之可以接受重定向或者管道中的密码。

  你可能被要求使用语言环境所提供的标准的输入输出方法,当然,那还要根据你的开发平台而定。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
4 发表于 2005-08-03 11:08 ·  中国 重庆 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
楼主是使用C写的程序把你改下源程序就行了啊
http://www.msfans.net/bbs/
5 发表于 2005-08-03 19:05 ·  中国 广西 北海 电信
初级用户
积分 133
发帖 10
注册 2005-01-16 00:00
21年会员
UID 35376
性别 男
状态 离线
首先谢谢各位大大的答复,你们辛苦了!

程序是用c写的,但不知道怎样修改,
我用的已经是标准的输入输出函数了,
不知道怎样修改才能接受重定向或管道中的密码,
版主能不能提供一些具体的做法或者相关的教程,
不胜感激!

四楼的解释我也看过了,
奈何俺是菜鸟,不知道怎么修改呀!

期待大大你们的答复!

至于二楼的大大所说的用kpush增强工具不是我所想要的方式,
我想通过DOS + 自己的编程来实现,
仍然感谢你的答复!
6 发表于 2005-08-03 19:23 ·  中国 重庆 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
你把那段验证密码的程序段去掉不就行了!!
http://www.msfans.net/bbs/
7 发表于 2005-08-03 19:34 ·  中国 广西 北海 电信
初级用户
积分 133
发帖 10
注册 2005-01-16 00:00
21年会员
UID 35376
性别 男
状态 离线
我想6楼所说的确实能够解决问题,
但这样做不是我想要的答案。
应该是我在求助时没有说清楚吧,
谢谢你的关注与答复!
8 发表于 2005-08-03 19:42 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re siyuer:

  使用TC2编译链接以下的程序test.c,得到的test.exe,可以通过 "echo mypassword | test" 的测试,即使使用 scanf、 getchar、getch 之类的函数也没有问题。如果你的程序确实无法如此使用,可以贴上你的源码看看。


#include "stdio.h"

int main(void)
{
char *pwd;
pwd = getpass("Please input password:");
printf("Your password: %s\n",pwd);
return 0;
}
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
9 发表于 2005-08-03 20:15 ·  中国 广西 北海 电信
初级用户
积分 133
发帖 10
注册 2005-01-16 00:00
21年会员
UID 35376
性别 男
状态 离线
谢谢楼上的答复,
我查了tc2的include文件夹,
才知道getpass是专门用于msdos的控制台输入输出的函数,
只是它被包含在conio.h中,
再次感谢版主的答复!
论坛跳转: