Попробуйте регулярные выражения:
$foo = 'something_of_unknown' -replace 'something.*','something'
Или, если вы знаете только «что-то», то, например,
'something_of_unknown' -replace '(some[^_]*).*','$1'
'some_of_unknown' -replace '(some[^_]*).*','$1'
'somewhatever_of_unknown' -replace '(some[^_]*).*','$1'
$1
- это ссылка на группу в скобках ((some[^_]*)
part).
Редактировать (после измененного вопроса):
Если вы используете регулярное выражение, тогда необходимо экранировать специальные символы:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '\\\\unknowntext1.*', '\\unknowntext1'
или (другая магия регулярных выражений) используйте lookhehind как это:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '(?<=\\\\unknowntext1).*', ''
(то есть: возьмите что-нибудь (.*
), но перед ним должно быть \\unknowntext1
('(?<=\\\\unknowntext1)
) изамените его пустой строкой.
Редактировать (последний)
Если вы знаете, что в середине что-то известно (alwaysSame
), это может помочь:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '(.*?)\\alwaysSame.*', '$1'