我有一个专门检查指定Windows服务名称的批处理脚本。它将服务名称,状态和启动类型输出到.csv报告:
type null > servicecheckupreport.csv
echo TIMESTAMP OF REPORT: >> servicecheckupreport.csv
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-3 delims=/:/ " %%a in ('time /t') do (set mytime=%%a-%%b-%%c)
set mytime=%mytime: =%
echo %mydate%_%mytime% >> servicecheckupreport.csv
echo , >> servicecheckupreport.csv
FOR /F "delims=: tokens=2" %%a in ('ipconfig ^| find "IPv4"') do set _IPAddress=%%a
ECHO %_IPAddress% >> servicecheckupreport.csv
set host=%COMPUTERNAME%
echo %host% >> servicecheckupreport.csv
for %%a in ("AdobeARMservice" , "aspnet_state" , "AdobeFlashPlayerUpdateSvc" ) do (
@echo|set /p=%%a
echo ,
@sc query "%%~a" | find "STATE"
@sc qc "%%~a" | findstr "START_TYPE"
) >> servicecheckupreport.csv
批处理脚本在手动运行时工作正常,但我想将其连接到Windows任务计划程序(WTS),以便能够每小时运行一次或我指定的任何时间间隔。
因此,我打开Windows任务计划程序,单击Create Basic Task
,指定名称和说明,指定触发器,将操作设置为Start a program
,然后完成。
问题是,在WTS中运行的批处理脚本不会输出.csv报告。
我已经四处询问并且也进行了研究,似乎解决方案似乎需要将批处理文件包装在" cmd / c"任务"
问题是,我不知道这意味着什么,包装它"在cmd /c
。我可能有一个猜测,但它到目前为止还没有奏效。对我来说,这就像在批处理脚本的每一行前面添加cmd /c
一样。