[英]net stop "service" not splitting log lines
批處理正在將有關已停止服務的信息寫入帶有時間戳的日志文件中。
我注意到執行net stop "service"命令的一些步驟將結果拆分到不同的行上。
echo|set /p=%date%-%time% >> Stop.log & net stop "Service1" >> Stop.log
實際Stop.log結果:
05/04/2019- 9:32:28.87 Service1 is stopping.
Service1 service was stopped successfully.
預期的Stop.log結果:
05/04/2019- 9:32:28.87 Service1 is stopping.
05/04/2019- 9:34:21.23 Service1 service was stopped successfully.
force net stop
返回一行(更准確:將所有輸出行合並為一行):
@echo off
(<nul set /p"=%date%-%time% "
for /f "tokens=*" %%a in ('net stop "Service1"') do <nul set /p "=%%a "
echo/
)>> Stop.log
(請注意任何想在不停止服務的情況下嘗試的人:而不是net stop "Service1"
try dir /b
)
將輸出保留為多行,但在每一行前添加日期和時間:
@echo off
for /f "tokens=*" %%a in ('net stop "Service1"') do echo %date%-%time% %%a >> Stop.log
使用for /F
循環捕獲net stop
的輸出並在!date!-!time!
之前!date!-!time!
到每一行。 確保為此啟用延遲擴展(否則您將獲得每行相同的日期和時間):
>> "Stop.log" (
for /F "delims=" %%L in ('net stop "Service1"') do (
set "LINE=%%L"
setlocal EnableDelayedExpansion
echo/!DATE!-!TIME! !LINE!
endlocal
)
)
請注意, net stop
返回的空行由於for /F
而丟失。 以分號開頭的行也是如此,因為這是for /F
的eol
字符的默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.