Ты хочешь попробовать пакетный сценарий? Простое решение - просто скрыть командное окно. Это можно сделать с помощью командной оболочки .VBS
, чтобы скрыть процесс командной строки. Оригинальный пост здесь .
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
Выше приведен скрипт для скрытия командных окон в VBS
. Вы можете использовать этот скрипт, позвонив wscript.exe "Script" "Batch File"
. Довольно простой и легкий способ сделать это без сторонних инструментов.
Я объединил ваш скрипт, чтобы позволить создавать, экспортировать, использовать и удалять эти файлы. Ваш основной сценарий завершения работы также должен быть экспортирован в новый пакетный файл, который будет вызываться сценарием VBS. Это можно сделать с помощью блока кода ниже
Rem | Create Timer.bat
(
Echo TIMEOUT /T %Time% /NOBREAK
Echo rundll32.exe user32.dll,LockWorkStation
Echo DEL "%%~f0"
)>> %Temp%\Timer.bat
Это создаст новый пакетный файл, содержащий команды выключения или блокировки. В этом случае rundll32.exe user32.dll,LockWorkStation
заблокирует рабочую станцию через X минут на TIMEOUT /T
StartTimmer.bat:
@echo off
title Shutdown timer
color 0a
:start
cls
echo Choose Your Time allocated:
echo(
echo 1. 35 Minutes
echo 2. 65 Minutes
echo 3. 95 Minutes
echo 4. 125 Minutes
echo 5. 1 Minutes
echo(
set /p "choice=Type which number for your choice: "
if "%choice%"=="1" set "choice=35" & goto ChoiceSellected
if "%choice%"=="2" set "choice=65" & goto ChoiceSellected
if "%choice%"=="3" set "choice=95" & goto ChoiceSellected
if "%choice%"=="4" set "choice=125" & goto ChoiceSellected
If "%choice%"=="5" set "choice=1" & goto ChoiceSellected
goto start
:ChoiceSellected
Echo Now Starting Timmer For %choice% Minutes
Rem | Do math - Covert Seconds To Minutes
Set /a "Time=%choice% * 60"
Rem | Create Timer.bat
(
Echo TIMEOUT /T %Time% /NOBREAK
Echo rundll32.exe user32.dll,LockWorkStation
Echo DEL "%%~f0"
)>> %Temp%\Timer.bat
Rem | Export Hide Script & Use it
Echo CreateObject^("Wscript.Shell"^).Run """" ^& WScript.Arguments^(0^) ^& """", 0, False>> Hide.vbs
wscript.exe "%~dp0Hide.vbs" "%Temp%\Timer.bat"
del "%~dp0Hide.vbs"
goto :EOF
Для получения справки по любой из команд выполните следующее:
call /?
set /?
for /?
if /?
find /?
- И так далее.