Как записать вывод консоли из powershell в текстовый файл - PullRequest
0 голосов
/ 15 октября 2019

Я пробовал много решений, чтобы получить вывод powershell в текстовый файл, чтобы я мог его прочитать. Я не могу заставить вывод консоли останавливаться в конце, поэтому я могу прочитать его, и я не могу заставить его записать файл. С этим кодом текстовый файл не пишется. Windows 10 1903

:: This will Remove all Appxpackages
::
$AppsList = 'Microsoft.3DBuilder', 
'Microsoft.BingFinance', 
'Microsoft.BingNews',
'Microsoft.BingSports', 
'Microsoft.MicrosoftSolitaireCollection',
'Microsoft.People', 
'Microsoft.Windows.Photos', 
'Microsoft.WindowsCamera',
'microsoft.windowscommunicationsapps', 
'Microsoft.WindowsPhone',
'Microsoft.WindowsSoundRecorder', 
'Microsoft.XboxApp', 
'Microsoft.ZuneMusic',
'Microsoft.ZuneVideo', 
'Microsoft.Getstarted', 
'Microsoft.WindowsFeedbackHub',
'Microsoft.XboxIdentityProvider', 
'Microsoft.MicrosoftOfficeHub',
'Fitbit.FitbitCoach',
'ThumbmunkeysLtd.PhototasticCollage'

C:\Batch\PSEXEC.EXE  -s powershell -c 
Start-Transscript -Path 'C:\RemoveAllAppxPackages.txt'
ForEach ($App in $AppsList){
    $PackageFullName = (Get-AppxPackage -AllUsers $App).PackageFullName
    $ProPackageFullName = (Get-AppxProvisionedPackage -AllUsers | where {$_.Displayname -eq                         $App}).PackageName
write-host $PackageFullName
Write-Host $ProPackageFullName
if ($PackageFullName){
    Write-Host "Removing Package: $App"
    remove-AppxPackage -package $PackageFullName -AllUsers  > C:\RemoveAllAppxPackages.txt
)   pause
   }

    else{
        Write-Host "Unable to find package: $App"  > C:\RemoveAllAppxPackages.txt
   pause
    }

    if ($ProPackageFullName){
        Write-Host "Removing Provisioned Package: $ProPackageFullName"
        Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName  >             C:\RemoveAllAppxPackages.txt
   pause
    }

    else{
        Write-Host "Unable to find provisioned package: $App"  > C:\RemoveAllAppxPackages.txt
   pause
    }
}
Pause
Stop-Transcript

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

В команде Start-Transcript есть опечатка .....

Start-Transscript -Path 'C:\RemoveAllAppxPackages.txt'

Должно читаться

Start-Transcript -Path 'C:\RemoveAllAppxPackages.txt'
0 голосов
/ 15 октября 2019

Вместо строки записи на хост вы можете просто записать нужные биты в файл (заключить в кавычки) и затем направить в out-файл в текстовый файл. например.

"Unable to find package: $App" | Out-File -FilePath C:\path\to\file.txt -Append

Обратите внимание, обязательно добавьте -append, в противном случае файл будет перезаписываться каждый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...