powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / powershell -replace
11 сообщений из 11, страница 1 из 1
powershell -replace
    #39565585
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На многих ПК есть файл типа file.bat. Содержимое схожее.
Везде есть 1-2 строки.

Код: plaintext
1.
C:\ProgramData\streams.exe -d %1
copy %1 \\modus\print\print.txt

Так вот, "%1" нужно заменить на "%UserProfile%\Downloads\txt.txt"

выполняю
Код: powershell
1.
powershell -Command "(gc file.bat) -replace '%1', '%UserProfile%\Downloads\txt.txt' | Out-File file.bat"



но в итоговом файле получается длинная строка:
C:\Users\user777\Downloads\txt.txtCC:\Users\user777\Downloads\txt.txt:C:\Users\user777\Downloads\txt.txt\C:\Users\user777\Downloads\txt.txtPC:\Users\user777\Downloads\txt.txtr........ и т.д.



а ещё нужно убрать "C:\ProgramData\", т.е. заменить на пустоту или хотя бы пробел.
Код: powershell
1.
powershell -Command "(gc toprn.bat) -replace 'C:\ProgramData\', ' ' | Out-File toprn1.bat"


но PowerShell ругается на "Недопустимый шаблон регулярного выражения".
...
Рейтинг: 0 / 0
powershell -replace
    #39565586
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге нужно получить

Код: sql
1.
2.
streams.exe -d %UserProfile%\Downloads\txt.txt
copy %UserProfile%\Downloads\txt.txt \\modus\print\print.txt
...
Рейтинг: 0 / 0
powershell -replace
    #39565602
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню streams , задача "скопировать текстовый файл без альтернативных потоков" тривиально решается в одну строчку:
Код: plaintext
 type файл-источник > файл-приёмник

P.S. -replace работает со строками, а не с файлами. Почувствуйте, как говориться, разницу.
А если всё равно велосипедить цикл фильтрации строк, то почему бы просто не раскидать по хостам новый вариант скрипта?
Зачем обязательно "ad astra per anus"?
...
Рейтинг: 0 / 0
powershell -replace
    #39565624
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
powershell -replace
    #39565822
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

я про steams ничего и не спрашивал
...
Рейтинг: 0 / 0
powershell -replace
    #39565824
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov Пример 3 .

Вы пробовали с моими строками?
'%1', '%UserProfile%\Downloads\txt.txt'
...
Рейтинг: 0 / 0
powershell -replace
    #39565859
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Так вот, "%1" нужно заменить на "%UserProfile%\Downloads\txt.txt"

выполняю
Код: powershell
1.
powershell -Command "(gc file.bat) -replace '%1', '%UserProfile%\Downloads\txt.txt' | Out-File file.bat"


Замена %1 и %UserProfile% происходит ДО запуска powershell, т.е. реально запускается такая строка
Код: powershell
1.
powershell -Command "(gc file.bat) -replace '', 'C:\Users\user777\Downloads\txt.txt' | Out-File file.bat"


ищи как правильно написать чтобы знак % остался на месте.
...
Рейтинг: 0 / 0
powershell -replace
    #39565886
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал заэкранировать обратный слешем \, но вываливается ошибка.
В общем, я на Delphi за полчаса написал консольную утилиту по замене текста.
Так что, пока вопрос закрыт.
...
Рейтинг: 0 / 0
powershell -replace
    #39566337
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Вы пробовали с моими строками?Типа, это мне надо???
Я указал, что согласно MSDN, замена строк в файле делается не так, как это делаете вы.
И я вправе не разбираться ещё и с экранированием.
...
Рейтинг: 0 / 0
powershell -replace
    #39566340
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tищи как правильно написать чтобы знак % остался на месте.В комстроке - ^, в пакетном файле - удвоение.
...
Рейтинг: 0 / 0
powershell -replace
    #39566505
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну на будущее буду знать. Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / powershell -replace
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]