Board logo

标题: 试做定时关机P处理,提问“变量的传递性”! [打印本页]

作者: heicai     时间: 2007-2-3 07:10    标题: 试做定时关机P处理,提问“变量的传递性”!

我做个定时关机的P处理。遇到个变量的问题,想知道变量是否能跨P处理传递,如不能有什么办法解决,具体看代码。

Main.cmd
if exist %temp%\sd.cmd del /Q /f "%temp%\sd.cmd"
if exist %temp%\hide.vbs del /Q %temp%\hide.vbs
ECHO 现在时间是:%tm1%点%tm2%分%tm3%秒
echo.
ECHO 请指定关闭的时间(分钟)
set shutdowntime=
SET /p shutdowntime=输入:
copy sd.cmd %temp%\
set path=%temp%\sd.cmd
echo set ws=WScript.CreateObject("WScript.Shell") >"%temp%\hide.vbs"
echo ws.Run "%path%",0 >>%temp%\hide.vbs
echo.
"%temp%\hide.vbs"
goto start
SD.cmd部分
@ECHO off
:again
set fen=%time:~3,2%
if %fen% EQU %shutdowntime% (shutdown -s -t 60 -c "即将关闭计算机")
ping 127.0.0.1 -n 10 >nul 2>nul
goto again
pause

主要是shutdowntime这个变量能否有办法从main.cmd传递过去,我不想在sd.cmd中来输分钟的时间,因为我要将它做成隐藏的。

作者: vkill     时间: 2007-2-3 08:12
call sd.cmd "%shutdowntime%"
作者: heicai     时间: 2007-2-3 08:38
回楼上的,我测试了下。不行。。。。
作者: namejm     时间: 2007-2-3 11:39
  有两种方法:

  1、call sd.cmd;
  2、call sd.cmd %shutdowntime%,然后把 sd.cmd 中的 %shutdowntime% 换成 %1。

  但是楼主却说第一种情况执行会出错,有点匪夷所思。
作者: rocmagic     时间: 2007-10-16 18:48
用CALL命令可以调用的
作者: zerocq     时间: 2007-10-16 22:20
call sd.cmd 变量
sd.cmd用%1接收

sd.cmd头部加上一句
set shutdowntime=%1

[ Last edited by zerocq on 2007-10-16 at 10:22 PM ]