Я хочу удалить информацию о ведущем пути, используя -replace.
robocopy.exe C:\FOLDER\Data2 C:\FOLDER\Data2 /l /nocopy /is /e /fp /ns /nc /njh /njs /log:c:\temp\FolderList.txt
Мой вывод:
C:\FOLDER\Data2\
C:\FOLDER\Data2\Documents\
C:\FOLDER\Data2\Documents\1.txt
C:\FOLDER\Data2\Documents\2.txt
C:\FOLDER\Data2\Documents\3.txt
C:\FOLDER\Data2\Documents\4.txt
C:\FOLDER\Data2\Documents\5.txt
C:\FOLDER\Data2\Documents\TEST\
C:\FOLDER\Data2\Documents\TEST\5.txt
Мой желаемый результат:
Documents\
Documents\1.txt
Documents\2.txt
Documents\3.txt
Documents\4.txt
Documents\5.txt
Documents\TEST\
Documents\TEST\5.txt
0
Arbelac
26 Апр 2020 в 16:24
1 ответ
Если ваш вывод является содержимым вашего файла журнала:
$path = 'C:\FOLDER\Data2\'
$pattern = [regex]::Escape($path)
$newContent = @()
Get-Content -Path "c:\temp\FolderList.txt" | ForEach-Object {$newContent += $_ -replace $pattern, ''}
Set-Content -Path "c:\temp\FolderList.txt" -Value $newContent
Если ваш вывод записывается на терминал, вы можете перенаправить вывод robocopy в файл, прочитать его и заменить каждое вхождение вашего нежелательного пути пустой строкой:
$path = 'C:\FOLDER\Data2\'
$tempFile = New-TemporaryFile
Start-Process robocopy.exe -ArgumentList "`"$path`" `"$path`" /l /nocopy /is /e /fp /ns /nc /njh /njs /log:c:\temp\FolderList.txt" -Wait -RedirectStandardOutput ($tempFile.FullName)
$pattern = [regex]::Escape($path)
Get-Content -Path ($tempFile.FullName) | ForEach-Object {Write-Host "$($_ -replace $pattern, '')"}
Remove-Item -Path ($tempFile.FullName)
0
stackprotector
26 Апр 2020 в 17:22
Похожие вопросы
Связанные вопросы
Новые вопросы
powershell
PowerShell - это кроссплатформенная утилита командной строки и сценариев от Microsoft. Используйте этот тег только для вопросов о написании и выполнении сценариев PowerShell. Вопросы программирования, относящиеся к кроссплатформенной версии PowerShell Core (Windows, macOS и Linux), должны быть помечены [powershell-core]. Вопросы о системном администрировании следует задавать в случае сбоя суперпользователя или сервера.
stdout
или в лог-файл?stdout
) или они являются содержимым вашего файла журналаc:\temp\FolderList.txt
?