我们知道 DOS 下的批处理程序中 可以用 ECHO 显示一段信息(提示信息或出错信息) 对于要接收用户输入的情况 MS DOS 本身提供的外部程序就只有 CHOICE 能让用户输入一个键 所以基本上只能用于菜单选择 对于下述两个需求 那就只有另外编程序了 .在 DOS 下的批处理程序中通过 WINDOWS 对话框显示一段提示信息或出错信息 .在 DOS 下的批处理程序中通过 WINDOWS 对话框接收用户输入的一个字符串 并对其进行后续处理
对于这两个问题 相信有些人已经有了一些解决方案 在此我提出我的解决方案 是用 DELPHI 写的程序(这些DELPHI程序都是没有 FORM 和 PAS文件的) 我觉得比较简单 作为抛砖引玉
显示提示信息 SHOWMSG DPR program ShowMsguses Windows{$R * RES} begin if ParamCount <then begin MessageBox( 用Windows对话框显示信息 # # + 用法: ShowMsg 提示信息 对话框标题 用法说明 MB_ICONINFORMATION)HaltendMessageBox( PChar(ParamStr( )) Pchar(ParamStr( )) MB_OK)Haltend
显示出错信息 EmsgDlg DPR program EmsgDlguses Windows{$R * RES} begin if ParamCount <then begin MessageBox( 用Windows对话框显示出错信息 # # + 用法: EmsgDlg 出错信息 对话框标题 用法说明 MB_ICONINFORMATION)HaltendMessageBox( PChar(ParamStr( )) PChar(ParamStr( )) mb_IconHand)Haltend
INPUTBOX DPR通过 WINDOWS 对话框接收用户输入的一个字符串 并把用户输入作为调用一个批处理程序或其他程序的第 个参数 program INPUTBOXuses Dialogs Windows{$R * RES} var NewString: stringClickedOK: Booleanbegin if ParamCount <then begin MessageBox( 将用户输入作为 BAT或其他程序的参数调用 # # + 用法: InputBox BAT或其他程序文件名 缺省输入 对话框标题 提示信息 InputBox用法说明 MB_ICONINFORMATION)HaltendNewString := ParamStr( )//default string ClickedOK := InputQuery(ParamStr( ) ParamStr( ) NewString)if ClickedOK then WinExec(PChar(ParamStr( ) + + NewString) SW_SHOWNORMAL)Haltend
用法举例 PRT BAT文件内容: @ECHO OFF D:\POS\INPUTBOX EXE PR BAT 解压POS报表文件并用写字板打开入帐汇总表 请输入日期:
PR BAT文件内容: @ECHO OFF IF % == GOTO END D: CD \POS\INBOX IF NOT EXIST POS% ARJ GOTO NOT_FOUND D:\POS\ARJ X y POS% ARJ CD D:\POS\INBOX\pos_report IF NOT EXIST Pr B% txt GOTO PR _NOT_FOUND C:\WINDOWS\WRITE Pr B% txt D:\POS\ShowMsg 成功! OK!!! GOTO END
:NOT_FOUND D:\POS\EmsgDlg 文件D:\POS\INBOX\POS% ARJ找不到! 出错! CD D:\ GOTO END
:PR _NOT_FOUND D:\POS\EmsgDlg 文件D:\POS\INBOX\pos_report\Pr B% txt找不到! 出错! CD D:\ GOTO END
:END
lishixinzhi/Article/program/Delphi/201311/25043
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)