2013-11-29 2 views
1

У меня есть скрипт в пакетном файле.Ho wo remove нажмите любую клавишу, чтобы продолжить в этом коде

@echo off 
    call :routine today -1 

    echo %%day%% is set to "%day%" (without the quotes) 
    echo %%YY%% is set to %YY% 
    echo %%MM%% is set to %MM% 
    echo %%DD%% is set to %DD% 
    set day=%MM%/%DD%/%YY% 
    echo %day% 
    pause 

    :routine 
     setlocal 
     set date1=%1 
     set qty=%2 
     set separator=%~3 
    if /i "%date1%" EQU "TODAY" (set date1=now) else (set date1="%date1%") 
    echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,%date1%) 
    echo>>"%temp%\%~n0.vbs" d=weekday(s) 
     echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_ 
    echo>>"%temp%\%~n0.vbs"   right(100+month(s),2)^&_ 
    echo>>"%temp%\%~n0.vbs"   right(100+day(s),2)^&_ 
    echo>>"%temp%\%~n0.vbs"   d 
    for /f %%a in ('cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a 
    del "%temp%\%~n0.vbs" 
    endlocal& (
    set "YY=%result:~0,4%" 
    set "MM=%result:~4,2%" 
    set "DD=%result:~6,2%" 
    set "daynum=%result:~-1%" 
) 
    set "day=%YY%%separator%%MM%%separator%%DD%" 

Этот код выполняет штраф, но в то же время попросите пользователя нажать любую клавишу, которую я не хочу.

Просьба помочь мне. любой провод оценивается

+0

На какой стадии это происходит? –

+0

@ user2310289: я не знаю точно, потому что я взял этот код из сети –

+0

К счастью, он не уничтожал ваш компьютер. Поймите скрипты перед их запуском. –

ответ

0

Ну, у вас есть команда «ПАУЗА» после эха% дня% Это будет остановлено до тех пор, пока не будет нажата клавиша.

+0

Если я удаляю паузу, то я получаю эту ошибку: 'C: \ DOCUME ~ 1 \ JYOTI ~ 1.BHA \ LOCALS ~ 1 \ Temp \ h.vbs (1, 2) Ошибка выполнения Microsoft VBScript или: Тип несоответствия : '[string: ""]' ' –

0

Просто удалите ключевое слово pause.

@echo off 
call :routine today -1 

echo %%day%% is set to "%day%" (without the quotes) 
echo %%YY%% is set to %YY% 
echo %%MM%% is set to %MM% 
echo %%DD%% is set to %DD% 
set day=%MM%/%DD%/%YY% 
echo %day% 


:routine 
setlocal 
set date1=%1 
set qty=%2 
set separator=%~3 
if /i "%date1%" EQU "TODAY" (set date1=now) else (set date1="%date1%") 
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,%date1%) 
echo>>"%temp%\%~n0.vbs" d=weekday(s) 
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_ 
echo>>"%temp%\%~n0.vbs"   right(100+month(s),2)^&_ 
echo>>"%temp%\%~n0.vbs"   right(100+day(s),2)^&_ 
echo>>"%temp%\%~n0.vbs"   d 
for /f %%a in ('cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a 
del "%temp%\%~n0.vbs" 
endlocal& (
set "YY=%result:~0,4%" 
set "MM=%result:~4,2%" 
set "DD=%result:~6,2%" 
set "daynum=%result:~-1%" 
) 
set "day=%YY%%separator%%MM%%separator%%DD%" 

И это должно делать то, что вы хотите. Кстати, если у вас мало понимания партии, вы не должны запускать их на своем компьютере, так как они могут легко повредить все ваши вещи.

Mona

3

Изменение pause с exit /b.

Вы определили подпрограмму для генерации временного файла vbs для работы с датами. Он вызывается с параметрами, но когда вы удаляете строку pause или когда вы нажимаете клавишу, выполнение кода продолжает входить в подпрограмму, но в этом случае без параметров.

Смежные вопросы