Batch file Can';不要在DOS中输入变量
我试图在vDOS(DOS模拟器)中运行一个批处理文件,希望用户在其中输入两个变量。每次我运行该文件时,它都不允许我输入变量Batch file Can';不要在DOS中输入变量,batch-file,environment-variables,user-input,dos,Batch File,Environment Variables,User Input,Dos,我试图在vDOS(DOS模拟器)中运行一个批处理文件,希望用户在其中输入两个变量。每次我运行该文件时,它都不允许我输入变量 SET /P in=Input: SET /P out=Output: 我期望发生的是,它允许我输入变量的输入。 相反,它按原样执行这两个命令(不允许我输入输入)。/p直到Windows 2000或NT才引入。传统MS-DOS或同等产品将不具备此功能 其中一个区别是set命令。在MS-DOS中,集合的唯一形式是set variable=value。既没有set/A,set
SET /P in=Input:
SET /P out=Output:
我期望发生的是,它允许我输入变量的输入。
相反,它按原样执行这两个命令(不允许我输入输入)。
/p
直到Windows 2000或NT才引入。传统MS-DOS或同等产品将不具备此功能 其中一个区别是set
命令。在MS-DOS中,集合的唯一形式是set variable=value
。既没有set/A
,set“variable=value”
也没有set/P
set/p
是Windows NT的cmd.exe的一项功能。在DOS中,您必须使用第三方软件获取用户输入并存储在变量中。这里有一些解决方案
-
SENVAR输入字符串:
-
editvar-p“输入字符串:”输入
-
@echo关闭 ::基于《个人电脑》杂志1995年6月27日第248页的批次 ::此版本将temp放在C:\DOS dir中,并缩短var名称 ::在变量STR中返回用户输入 :输入 >C:\DOS\en#er.bat fc con numl/lb1/n | date |查找“1”: >C:\DOS\enter.bat echo set str= >>C:\DOS\enter.bat echo:循环 >>C:\DOS\enter.bat echo如果不是“%%str%%==”设置str=%%str%%%5 >>C:\DOS\enter.bat echo如果“%%str%%==”设置str=%%5 >>C:\DOS\enter.bat echo shift >>C:\DOS\enter.bat echo如果不是“%%5==”转到循环 打电话给恩#尔·巴特 del C:\DOS\enter.bat del C:\DOS\en#er.bat
-
@ECHO关闭 REM*请求用户输入并将其存储在变量USRINPUT中 REM*假设加载了ANSI.SYS 罗布·范德沃德写的《雷姆》 设置USRINPUT= REM*打开ANSI键转换(转换输入 REM*按F6键+输入顺序)并请求输入: 回音←[13;0;64;13仅输入一个单词。 REM*将输入的文本复制到临时文件: 复制CON%TEMP%\~USRINP.TMP REM*关闭ANSI键转换并清除不相关的屏幕输出: 回音←[13;13p←[3A←[K]←[1B←[K]←[1B←[K]←[2A REM*将空行添加到临时文件。空行 REM*将用于停止日期请求新日期。 ECHO.>>%TEMP%.\~USRINP.TMP ECHO.>>%TEMP%.\~USRINP.TMP REM*创建一个临时批处理文件,用于存储 REM*在环境变量USRINPUT中输入文本: 键入%TEMP%.\~USRINP.TMP | DATE | FIND“:“>%TEMP%.\~USRINP.BAT REM*创建更多临时批处理文件。添加 REM*如有必要,提供更多命令行参数, REM*as in:ECHO SET USRINPUT=%%3%%4%%5%%6%%7%%8%%9>CURRENT.BAT ECHO SET USRINPUT=%%3>CURRENT.BAT REM*VOER.BAT和TYP.BAT是荷兰语CURRENT.BAT的替代品 REM*DOS版本;必要时添加您自己的语言版本: 回声集USRINPUT=%%6>VOER.BAT ECHO SET USRINPUT=%%4>类型.BAT REM*此临时批处理文件现在设置变量USRINPUT: 致电%TEMP%.\~USRINP.BAT REM*显示结果: 回显您键入的内容:←[1m%USRINPUT%←[0m 回声。 暂停 REM*最后,清理混乱的临时文件: 对于(%TEMP%.\~USRINP.BAT%TEMP%.\~USRINP.TMP VOER.BAT TYP.BAT CURRENT.BAT)中的%%A,请删除%%A
CHOICE.COM
就是为此而设计的
另见