PowerShell:删除尾随的“…”

问题描述

| 我正在尝试创建一个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                       ...
    

解决方法

        不要使用Format-Table(ft),因为它会尝试将数据容纳在控制台中可用的列数之内,并且您已将“ line”列的空间限制为44个字符。尝试以下方法:
$tasks | Select-String -pattern \"Disabled\" | Foreach {$_.Line}
    ,        
$tasks | Select-String -pattern \"Disabled\" | ForEach-Object
{ $_ -replace \"Disabled\",\"\"} | ForEach-Object { $_ -replace \"Could not start\",\"\"} | ForEach-Object { $_.Trim() }
完全符合我的要求。     ,        我不确定其中包含什么$ 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\"}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...