我在XP系统下写了一个bat文件,需要获取用户输入的值,部分代码如下:
set /p dBegin=请输入开始时间:
echo %dBegin%
可以显示我输入的值,但是把这个bat文件放在WindowsNT环境下就不好使了,我查了一下NT环境下的set命令,NT环境里好像没有“/p”的指令,所以打开这个bat文件时就没有显示让我输入值的提示,而是直接显示dBegin是off,现在我想在NT环境下获取到用户输入的值,bat文件如何写,请哪位大侠指教!
------解决方案--------------------------------------------------------
nt 环境下set可能没有/p选项。要实现用户输入给变量赋值有2个办法:
1,将所需输入的信息做为批处理的参数一起输入。比如。
test.bat 开始时间
程序中调用 %1就可以了。
2,用input命令(如果有)
貌似还有个工具string。可以在网上找下。
------解决方案--------------------------------------------------------
- BatchFile code
@echo offecho WScript.Echo "set dBegin=" + WScript.StdIn.ReadLine>input.vbsecho 请输入开始时间:cscript //nologo input.vbs>input.batcall input.batecho %dBegin%pausedel input.vbs input.bat
------解决方案--------------------------------------------------------
missing77兄说得很明白了。
echo WScript.Echo "set dBegin=" + WScript.StdIn.ReadLine>input.vbs
生成input.vbs并向其中写入内容 WScript.Echo "set dBegin=" + WScript.StdIn.ReadLine。
代码的意思是输出字符串“set dBegin=从控制台接受到的内容”。
cscript //nologo input.vbs>input.bat
执行刚才生成的input.vbs,并把输出的内容重定向到input.bat,即写到input.bat。这样input.bat的内容就是“set dBegin=从控制台接受到的内容”。用参数 //nologo 是不显示 Logo,否则input.bat也会有 Logo 内容。
call input.bat就完成了变量的赋值了。
------解决方案--------------------------------------------------------
不怎么懂。只有好好给你顶贴,呵呵。
------解决方案--------------------------------------------------------
我不是高手,正好在看批处理,给你试了一下。
@echo off
echo 输入一个回车,输入第二个回车,第三行输入CTRL+Z并回车
type con>test.txt
for /f "delims=" %%i in (test.txt) do (
rem 这里就可以看到变量%%i的内容是否正确了
echo %%i
rem 在这里插入你想要的应用
)
del test.txt
pause
没办法,输入最后一定要按ctrl+z或F6结束,你看看有没有用吧。