PowerShell: удалить трейлинг "..." - PullRequest
0 голосов
/ 31 мая 2011

Я пытаюсь создать скрипт powershell, который получит список запланированных задач. У меня достаточно далеко, чтобы получить полный список задач, однако мне нужно удалить завершающий "..."

Как ты это делаешь?

$tasks | Select-String -pattern "Disabled" | ft @{Expression
={$_.Line};Label="Line";width=44}

Выход:

Line
----
AD RMS Rights Policy Template Management ...
AD RMS Rights Policy Template Management ...
Proxy                                    ...
UserTask                                 ...
UserTask-Roam                            ...
Consolidator                             ...
KernelCeipTask                           ...
UsbCeip                                  ...
ScheduledDefrag                          ...
Scheduled                                ...
Microsoft-Windows-DiskDiagnosticDataColl ...
Microsoft-Windows-DiskDiagnosticResolver ...
Notifications                            ...
WinSAT                                   ...
ActivateWindowsSearch                    ...
ConfigureInternetTimeService             ...
DispatchRecoveryTasks                    ...
ehDRMInit                                ...
InstallPlayReady                         ...
mcupdate                                 ...
MediaCenterRecoveryTask                  ...
ObjectStoreRecoveryTask                  ...
OCURActivate                             ...
OCURDiscovery                            ...
PBDADiscovery                            ...
PBDADiscoveryW1                          ...
PBDADiscoveryW2                          ...
PeriodicScanRetry                        ...
PvrRecoveryTask                          ...
PvrScheduleTask                          ...
RecordingRestart                         ...
RegisterSearch                           ...
ReindexSearchRoot                        ...
SqlLiteRecoveryTask                      ...
UpdateRecordPath                         ...
CorruptionDetector                       ...
DecompressionFailureDetector             ...
HotStart                                 ...
LPRemove                                 ...
SystemSoundsService                      ...
GatherNetworkInfo                        ...
Background Synchronization               ...
Logon Synchronization                    ...
AnalyzeSystem                            ...
RacTask                                  ...
RegIdleBackup                            ...
WindowsParentalControls                  ...
WindowsParentalControlsMigration         ...
AutoWake                                 ...
GadgetManager                            ...
SessionAgent                             ...
SystemDataProviders                      ...
SR                                       ...
Interactive                              ...
IpAddressConflict1                       ...
IpAddressConflict2                       ...
MsCtfMonitor                             ...
SynchronizeTime                          ...
ResolutionHost                           ...
QueueReporting                           ...
BfeOnServiceStartTypeChange              ...
UpdateLibrary                            ...
ConfigNotification                       ...
Calibration Loader                       ...

Ответы [ 3 ]

2 голосов
/ 01 июня 2011

Не используйте Format-Table (ft), так как он попытается уместить данные в число столбцов, доступных в консоли, и вы ограничили пространство для столбца "line" до 44 символов.Попробуйте вместо этого:

$tasks | Select-String -pattern "Disabled" | Foreach {$_.Line}
1 голос
/ 01 июня 2011
$tasks | Select-String -pattern "Disabled" | ForEach-Object
{ $_ -replace "Disabled", ""} | ForEach-Object { $_ -replace "Could not start",
""} | ForEach-Object { $_.Trim() }

Делает именно так, как я хотел.

0 голосов
/ 01 июня 2011

Я не уверен, что в нем есть $ tasks, поэтому я написал это на основе get-service, но в вашем случае это должно работать:

$tasks | Select-String -pattern "Disabled" | ft @{Expression=
{$intLength = 44; if($_.Line.length -lt $intLength) {$intLength=$_.Line.length} $_.Line.substring(0,$intLength)};Label="Line"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...