标题: 【求助】关于批处理下程序执行过程中如何提供输入
[打印本页]
作者: siyuer
时间: 2005-8-2 21:52
标题: 【求助】关于批处理下程序执行过程中如何提供输入
各位大大:
我写了一个测试程序(passwd),功能是这样的:
在dos下键入程序名passwd,会要求输入密码:
Please input the password:
然后需要通过键盘输入password才能出现欢迎字面并退出,
但在应用中总是需要输入太麻烦,我想写一个批处理来实现自动输入密码,
试了很多方法都不行,还请各位大大不吝赐教!
已经试过的方法有: 文件重定向,管道
echo password | passwd
passwd < 1.txt 其中1.txt文件中保存有密码
作者: JonePeng
时间: 2005-8-2 22:27
试试用Kpush:
kpush password
passwd
作者: willsort
时间: 2005-8-2 23:20
Re siyuer:
如果可能,你可以更改你的源程序,使之可以接受重定向或者管道中的密码。
你可能被要求使用语言环境所提供的标准的输入输出方法,当然,那还要根据你的开发平台而定。
作者: chenhui530
时间: 2005-8-3 11:08
楼主是使用C写的程序把你改下源程序就行了啊
作者: siyuer
时间: 2005-8-3 19:05
首先谢谢各位大大的答复,你们辛苦了!
程序是用c写的,但不知道怎样修改,
我用的已经是标准的输入输出函数了,
不知道怎样修改才能接受重定向或管道中的密码,
版主能不能提供一些具体的做法或者相关的教程,
不胜感激!
四楼的解释我也看过了,
奈何俺是菜鸟,不知道怎么修改呀!
期待大大你们的答复!
至于二楼的大大所说的用kpush增强工具不是我所想要的方式,
我想通过DOS + 自己的编程来实现,
仍然感谢你的答复!
作者: chenhui530
时间: 2005-8-3 19:23
你把那段验证密码的程序段去掉不就行了!!
作者: siyuer
时间: 2005-8-3 19:34
我想6楼所说的确实能够解决问题,
但这样做不是我想要的答案。
应该是我在求助时没有说清楚吧,
谢谢你的关注与答复!
作者: willsort
时间: 2005-8-3 19:42
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;
}
作者: siyuer
时间: 2005-8-3 20:15
谢谢楼上的答复,
我查了tc2的include文件夹,
才知道getpass是专门用于msdos的控制台输入输出的函数,
只是它被包含在conio.h中,
再次感谢版主的答复!