Задать вопрос
@Drovosek01

Как в Powershell экранировать символы в строке пути, чтобы она не распознавалась как путь?

Есть скрипт, который построчно обрабатывает текстовый такого формата:

путь к файлу
текст поиска
текст замены
текст поиска
текст замены
путь к файлу
текст поиска
текст замены

Для распознавания, что строка это путь к файлу, а не строка поиска - я проверяю строку в Test-Path
Но если строкой поиска должен быть путь, например /Users - то все "сбивается"

Я пытался в качестве текста поиска класть \/Users (то есть экранировать /), но Test-Path все равно распознает это как путь.

Как написать строку /Users так, чтобы она не распознавалась как путь в Test-Path и при этом распознавалась как регулярное выражение?

P.S.
И да, аргумент -LiteralPath - не помогает
Команда
Test-Path -LiteralPath "\/Users"
Все равно возвращает True
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@MaxKozlov Куратор тега PowerShell
Довольно странный способ как передавать данные, так и проверять
Мне кажется, вам надо подход изменить, чтобы не бороться с проблемами, которые сами себе и создаёте
А именно - изменить формат входных данных

Как вариант - использовать что-нибудь типа ini

[путь к файлу]
текст поиска
текст замены
текст поиска
текст замены
[путь к файлу]
текст поиска
текст замены
Ответ написан
Комментировать
@NortheR73
системный инженер
Как написать строку /Users так, чтобы она не распознавалась как путь в Test-Path

PS C:\Windows\system32> Test-Path -LiteralPath '`/Users'
False
PS C:\Windows\system32> Test-Path '`/Users'
False
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы