Как создать пакетный файл с указанием версии Windows, а затем использовать XML-файл для импорта задачи - PullRequest
0 голосов
/ 14 июня 2019

Я ищу способ импорта командного файла запланированной задачи под названием Task Kill.Я столкнулся с проблемой в разных операционных системах, и мне нужно иметь несколько XML-файлов запланированных задач, один для Windows 7 и другой для Windows 10. Мне нужен командный файл, который может видеть, является ли это Windows 7 или Windows 10 изатем используйте соответствующий XML-файл.

Я ничего не предпринимал, так как не уверен, как это выглядит для типа операционной системы

schtasks /create /tn "Task Kill WebCat Server" /XML "%~dp0Task Kill.xml"

Вот используемый XML-файл

<?xml version="1.0" encoding="ISO-8859-1"?>
<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task" version="1.4">
    <RegistrationInfo>
        <Date>2019-06-06T09:12:27.4239747</Date>
        <Author>Support</Author>
        <URI>\Task Kill</URI>
    </RegistrationInfo>
    <Triggers>
        <CalendarTrigger>
            <StartBoundary>2019-06-06T06:00:00</StartBoundary>
            <Enabled>true</Enabled>
            <ScheduleByDay>
                <DaysInterval>1</DaysInterval>
            </ScheduleByDay>
        </CalendarTrigger>
    </Triggers>
    <Principals>
        <Principal id="Author">
            <UserId>S-1-5-18</UserId>
            <RunLevel>HighestAvailable</RunLevel>
        </Principal>
    </Principals>
    <Settings>
        <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
        <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
        <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
        <AllowHardTerminate>true</AllowHardTerminate>
        <StartWhenAvailable>false</StartWhenAvailable>
        <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
        <IdleSettings>
            <StopOnIdleEnd>true</StopOnIdleEnd>
            <RestartOnIdle>false</RestartOnIdle>
        </IdleSettings>
        <AllowStartOnDemand>true</AllowStartOnDemand>
        <Enabled>true</Enabled>
        <Hidden>false</Hidden>
        <RunOnlyIfIdle>false</RunOnlyIfIdle>
        <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
        <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
        <WakeToRun>true</WakeToRun>
        <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
        <Priority>7</Priority>
    </Settings>
    <Actions Context="Author">
        <Exec>
            <Command>"C:\Program Files (x86)\MAM Software\VAST\KillWebcat.bat"</Command>
        </Exec>
    </Actions>
</Task>

При импорте этого файла он работает только в Windows 10, а не в Windows 7.

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Ниже приведен пакетный файл, который определит, является ли ваша операционная система Windows 7 или Windows 10. Просто замените сообщение Echo нужными вам командами.

@Echo Off
For /F "EOL=O Delims=" %%A In (
    '"WMIc OS Get OSArchitecture,ProductType,Version 2>Nul"'
) Do For /F "Tokens=1,3-5 Delims=-. " %%B In ("%%A"
) Do If %%C Equ 1 Call :v%%D%%Ex%%B 2>Nul
Pause
Exit/B

:v61x32
Echo Windows 7 x86 Commands
GoTo :EOF

:v61x64
Echo Windows 7 x64 Commands
GoTo :EOF

:v100x32
Echo Windows 10 x86 Commands
GoTo :EOF

:v100x64
Echo Windows 10 x64 Commands
GoTo :EOF

Если «битность» операционной системы не имеет значения, вы можете использовать это вместо:

@Echo Off
For /F "EOL=O Delims=" %%A In (
    '"WMIc OS Get OSArchitecture,ProductType,Version 2>Nul"'
) Do For /F "Tokens=1,3-5 Delims=-. " %%B In ("%%A"
) Do If %%C Equ 1 Call :v%%D%%Ex%%B 2>Nul
Pause
Exit/B

:v61x32
:v61x64
Echo Windows 7 Commands
GoTo :EOF

:v100x32
:v100x64
Echo Windows 10 Commands
GoTo :EOF

Обратите внимание, что в обоих случаях команда Pause включена только для того, чтобы вы могли читать сообщения Echo, вы можете обнаружить, что удаление их при замене Echo на ваши собственные команды лучше для ваших целей.

0 голосов
/ 14 июня 2019

Будет ли использование команды VER, что нужно?

FOR /F "delims=" %%v IN ('VER') DO ( SET "VERSION=%%~v" )
ECHO %VERSION%

Было бы лучше, если бы можно было использовать один файл XML.

...