Quando eu executo isso:
schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"
Eu entendi isso:
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
GoogleUpdateTaskMachineUA N/A Disabled
Existe alguma maneira de recuperar apenas o status?
windows
windows-10
scheduled-tasks
Oskar K.
fonte
fonte
space
nome. Quando há espaços no nome da tarefa, isso não funciona. Ainda não tentei, mas pode funcionar se eu tentar ajustartokens
valores contando espaços na saída.for /f "usebackq skip=3 tokens=7" %a in (`schtasks.exe /query /tn "Refresh Dashboard Cache"`) do @echo %a
Tente
schtasks /query
com a/v
opção para saída detalhada e/fo list
para o formato da lista. Em seguida, filtre os resultados com ofind
comandoVocê recebe uma string como esta
Para extrair o valor do status, use o
for
comando:%a
por%%a
|
ou>
nofor
comando, use^
fonte
Se você estiver escrevendo um script do Powershell usando o Windows 7 e não puder usá-
Get-ScheduledTask
lo, considere usar:$status = ((schtasks /query /S 'yourServer' /TN yourTask)[4] -split ' +')[2]
Se parece com isso:
fonte
Procurei uma boa resposta para isso e encontrei algumas coisas que me aproximaram. Acabei com o seguinte.
Se você deseja todos os itens da tarefa, pode fazer algo semelhante ao seguinte ...
Em seguida, você pode selecionar a propriedade com a qual deseja trabalhar ...
Lembre-se de usar aspas nas propriedades com espaços nelas!
Para esclarecer, minha resposta está usando o Powershell quando Get-ScheduledTask não está disponível, o que não seria se estivesse executando o Windows 7 ou o Windows Server 2008. Embora uma resposta forneça uma maneira de obter o status, acho que esse método é mais fácil de entender e trabalhar. Ainda mais se alguém estiver interessado em obter outras propriedades da tarefa agendada sem precisar analisar em qual coluna a propriedade está. Em suma, minha resposta é a solução que eu estava procurando, então pensei em compartilhá-la. para outros indivíduos afins.
fonte
Get-ScheduledTask
e outro que usa(schtasks /query …) -split
. Como sua resposta é melhor do que essas? Por favor, não responda nos comentários; edite sua resposta para torná-la mais clara e completa.O seguinte também funciona para nomes de tarefas com espaço (s) em seu nome:
À medida que um arquivo CSV de saída ( c omma s eparated v alores) (
/fo
RMATcsv
) e usodelims=,
, os espaços não importa mais./nh
significa " n o h eader", por isso não há necessidade deskip=
.fonte
Adicione
/fo csv
aoschtasks
comando para alterar seu formato de saída para CSV.Em seguida, use CSVFix para filtrar a coluna necessária com
-f 3
argumento e pule o registro de nome do campo com-ifn
.fonte