Powershell иногда выводит полный путь, а иногда относительный путь - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть скрипт, который получает несколько строк из текстового файла, а затем разбивает их, чтобы получить определенную часть строки, проблема в том, что моя проблема заключается в том, что я использую двойную точку (:) в качестве разделителя, ииногда powershell выводит полный путь к файлу, а иногда просто выводит относительный путь.

Так что, когда я пытаюсь разделить что-то вроде этого

sometext.txt:2:1;2

, и вместо этого я получаю это

C:\Tester\folder\sometext.txt:2:1;2

если я использую эту строку кода

$z=$z.split(':')[1]

, вы можете увидеть, насколько это плохо получится.Я хочу, чтобы он выводил либо полный путь, либо относительный путь последовательно.Вот блок кода, связанный с проблемой

$z=(Select-String -Path "sometext.txt" -Pattern "\b$D;$Z\b" | Select-object -First 1)
$z=$z | Out-String
$z=$z.split(':')[1]

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете просто использовать лист Split-Path, чтобы последовательно получить относительный путь:

PS C:\> Split-Path "sometext.txt:2:1;2" -leaf                                                             
sometext.txt:2:1;2
PS C:\> Split-Path "C:\Tester\folder\sometext.txt:2:1;2" -leaf                                            
sometext.txt:2:1;2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...