Bat高手们,帮我看看这段代码有没有问题,vbs一直运行不起来.我只有5悬赏分了...求解.

代码:@Echooffcolor2fifexist"%tmp%\run.vbs"del/q"%tmp%\run.vbs"set/ptime=倒计时几秒=echo\&ech... 代码:
@Echo off
color 2f
if exist "%tmp%\run.vbs" del /q "%tmp%\run.vbs"
set /p time=倒计时几秒=
echo\&echo\&echo\&echo\
echo Set WshShell = CreateObject("WScript.Shell")>"%tmp%\run.vbs"
echo Dim CloseTime,i>>"%tmp%\run.vbs"
echo CloseTime = %time%>>"%tmp%\run.vbs"
echo For i = CloseTime To 1 Step - 1>>"%tmp%\run.vbs"
echo WshShell.popup "倒计时剩下" & i,1秒,"计时",0>>"%tmp%\run.vbs"
echo Wscript.Sleep 1000>>"%tmp%\run.vbs"
echo Next>>"%tmp%\run.vbs"
echo MsgBox "时间到!">>"%tmp%\run.vbs"
echo Set WshShell = Nothing>>"%tmp%\run.vbs"
cls
set /p start=现在开始倒计时吗(Yes or No):
if /i "%start%"=="Yes" (
cd %tmp%
start run.vbs
exit
)
if /i "%start%"=="No" (
copy %tmp%\run.vbs 倒计时.vbs
exit
)
展开
 我来答
雷神拌柠檬
2011-03-11 · 超过15用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:39.6万
展开全部
bat里面0-9放在<<,>>,<,>旁边是代表的句柄,而不是普通数字,0,1,2,是预设好的。你试下,运行你一开始的bat,然后打开生成的run.vbs,可以发现echo For i = CloseTime To 1 Step - 1>>"%tmp%\run.vbs"这行实际输入是echo For i = CloseTime To 1 Step -,1没有被输入
,应为它是输出句柄,也就是代表前面的内容,所以可以这样改:
@Echo off
color 2f
if exist "%tmp%\run.vbs" del /q "%tmp%\run.vbs"
set /p time=倒计时几秒=
echo\&echo\&echo\&echo\
echo Set WshShell = CreateObject("WScript.Shell")>"%tmp%\run.vbs"
echo Dim CloseTime,i>>"%tmp%\run.vbs"
echo CloseTime = %time% 1>>"%tmp%\run.vbs"
echo For i = CloseTime To 1 Step - 1 1>>"%tmp%\run.vbs"
echo WshShell.popup "倒计时剩下" ^& i,1秒,"计时",0 1>>"%tmp%\run.vbs"
echo Wscript.Sleep 1000>>"%tmp%\run.vbs"
echo Next>>"%tmp%\run.vbs"
echo MsgBox "时间到!">>"%tmp%\run.vbs"
echo Set WshShell = Nothing>>"%tmp%\run.vbs"
cls
set /p start=现在开始倒计时吗(Yes or No):
if /i "%start%"=="Yes" (
cd %tmp%
start run.vbs
exit
)
if /i "%start%"=="No" (
copy %tmp%\run.vbs 倒计时.vbs
exit
)
>>前是数字的那几行,数字后先空一格,再加1,代表前面的输出,注意哪行%time%后面也要加,不然输入0-9就无效了
&在bat里有特殊含义,做输出时要用^&转义
例外vbs代码 WshShell.popup "倒计时剩下" ^& i,1秒,"计时",0
好像有错
soshent
2011-03-10
知道答主
回答量:12
采纳率:0%
帮助的人:11.8万
展开全部
杯具,看了半天感觉没问题......自己试了下,结果...
这两句...巧合了。
echo For i = CloseTime To 1 Step - 1>>"%tmp%\run.vbs"
echo WshShell.popup "倒计时剩下" & i,1秒,"计时",0>>"%tmp%\run.vbs"
1>>,0>>,系统会默认为是一种输出方式,而不是把1和0输出来,你稍微空格下。
更多追问追答
追问
那你把更改过的BAT代码发上来,我是新手。。。
那你把更改过的BAT代码发上来
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式