楼 主
【求助】关于批处理下程序执行过程中如何提供输入
发表于 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中,
再次感谢版主的答复!
论坛跳转: