如何创建注释 windows 版本的批处理文件,然后使用 xml 文件导入任务
How to create batch file noting windows version then use xml file to import task
我正在寻找一种方法来让批处理文件导入名为 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。
使用 VER
命令会提供所需的内容吗?
FOR /F "delims=" %%v IN ('VER') DO ( SET "VERSION=%%~v" )
ECHO %VERSION%
如果可以使用单个 XML 文件就更好了。
以下是一个批处理文件,它将确定您的操作系统是 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
如果操作系统的 'bitness' 无关紧要,那么您可以改用它:
@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
使用您自己的命令更适合您的目的。
我正在寻找一种方法来让批处理文件导入名为 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。
使用 VER
命令会提供所需的内容吗?
FOR /F "delims=" %%v IN ('VER') DO ( SET "VERSION=%%~v" )
ECHO %VERSION%
如果可以使用单个 XML 文件就更好了。
以下是一个批处理文件,它将确定您的操作系统是 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
如果操作系统的 'bitness' 无关紧要,那么您可以改用它:
@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
使用您自己的命令更适合您的目的。