SFC scan using Batch file or Powershell

Copper Contributor


Trying to run SFC scan every day using task scheduler ,however the result are storing in default location  C:\Windows\Logs\CBS  CBS text file , 
Written Batch file ,to run sfc scan and save the output in user desktop or local disk C

--------- Below 2 lines copied and saved as .bat -------

sfc /scannow
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > C:\sfclogs.txt

however it was failed to run.


have PowerShell script but i don't know where to place  sfc /scannow command in the script

Get-Content -Path "$env:windir\Logs\CBS\CBS.log" |
Where-Object { $input -like "*[SR]*" } |
Out-File -FilePath "$env:USERPROFILE\Desktop\sfcdetails.txt"



Could you please suggest me here.

8 Replies

On the top of Get-Content

Sfc /scannow
Get-Content -Path "$env:windir\Logs\CBS\CBS.log" |Where-Object { $input -like "*[SR]*" } |Out-File -FilePath "$env:USERPROFILE\Desktop\sfcdetails.txt"




If this answer help, Please click on Best Response and hit the like :) 

farismalaeb : Thanks for your input. Since i was using for daily scan in scheduled task .
So in the script could you please suggest to keep existing file and create a new file with respective date



sure you can use the following as a FilePath

-FilePath "$env:USERPROFILE\Desktop\$(get-date -Format "DD-MM-yyyy").txt"

@farismalaeb  : The output name is still not coming with date,month,year with time  its not coming .
please screenshot .
It should come like sfc_report_date.month.year.timestamp 

could you please assist me

Yes, it wont, My mistake.
the DD should be small letter
$(get-date -Format "dd-MM-yyyy")
the result looks like 28-07-2022


Thank you !
now it's working fine.

One request i tried to print hours & mints also  like below 

$(get-date -Format "ddMMyyyy HH:mm:ss").txt"


but it is getting error , could you let me know how can i get output file with date month year  hours and mints and seconds as well , 

it is possible  to get the file like --> sfc_scanreport_28-07-2022-hours-mints-seconds


like that so that we can easily identify the file name .

best response confirmed by Surya2023 (Copper Contributor)
Yes, you can use the following
"$env:USERPROFILE\Desktop\$(get-date -Format "ddM-MM-yyyy--hh-mm-ss")"

If the answer help, Please click on Best Response and give a like :)
Thanks a lot its working fine now