Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
 
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
Как запустить Pwsh старше 7.2.24 под Windows 7.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы

Всего записей: 11777 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: KLASS, 08:31 18-08-2025
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
kraeved, 2022-1222-1354
Ребят, у меня на Windows 7 работает Pwsh 7.2.8, а 7.3.0 и старше (скажем, 7.4.0p1) — нет.
Во втором случае сразу после запуска занимается вся оперативка, что парализует систему.
Может быть, кто-то здесь с этим сталкивался и нашёл решение?

Прошло 906 дней с того вопроса, почти как 872 дня блокады Ленинграда, и ответ таки найден!
 
Решение
 
Последняя официальная версия Pwsh для Windows 7 — это 7.2.24 (x86, x64).
 
Для запуска более свежей версии (например. 7.5.1) нужно
    - или распаковать её поверх 7.2.24, т.к. там есть важные файлы api-ms-*.dll и ext-ms-*.dll
    - или в папку со свежей версией положить *.dll из пакета NETCore Windows ApiSets (x86, x64)
    - создать переменную DOTNET_EnableWriteXorExecute со значением 0.

Код:
$ setx DOTNET_EnableWriteXorExecute 0
SUCCESS: Specified value was saved.
 
$ pwsh -c "$psversiontable"
Name                           Value
----                           -----
PSVersion                      
7.5.1
PSEdition                      Core
GitCommitId                    7.5.1
OS                             Microsoft Windows 6.1.7601 Service Pack 1
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

 
$ pwsh -c "get-securerandom"
61797397

Оговорка. Хотя Pwsh и опирается на регулярно обновляемый NET SDK (сейчас уже на 9-й),
остаются вещи, которые зависят от ОС. Например, Windows 7 не ходит по HTTP/2, вот и Pwsh
тоже не может. Смех сквозь слёзы, ибо поседевший Microsoft Edge 109 ходит даже по HTTP/3.

Код:
$ pwsh -c "irm https://cloudflare.com/cdn-cgi/trace -httpversion 2"
...
http=http/1.1
tls=TLSv1.2

Всего записей: 1060 | Зарегистр. 01-03-2003 | Отправлено: 03:36 16-06-2025 | Исправлено: kraeved, 19:41 17-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
нет, это куча батников. не

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 08:10 16-06-2025
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
нет, это куча батников. не

дело хозяйское, конечно...  
но я и говорю, куча зубодробильных батников, утилит, ещё чего-то... и всё это для того, чтобы скачивать телепрограмму? Вместо одного скрипта...

Всего записей: 3253 | Зарегистр. 03-02-2009 | Отправлено: 12:37 16-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
не просто скачивать, а скачивать только когда изменился файл, этот файл не поврежден, скачивать в собственное хранилище, чтоб не испортить телепрограмму на неделю архива на телике. скрипты чушь какая то. скачивающую утилиту немного переделать чтоб она данные о скачивании выводила для простоты, а потом ее можно использовать в других батниках

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 16:54 16-06-2025 | Исправлено: bomzz, 16:55 16-06-2025
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kraeved
 
поспрашивал Клавдия
https://claude.ai/share/6fd96ac6-0c01-4ded-b435-34272153a804
 
As noted in your original post, this is indeed ironic since Microsoft Edge 109 on Windows 7 does support HTTP/3, but that browser uses a different networking implementation than the system's WinHTTP API that .NET applications rely on.
 
The HTTP version limitation is just one of several modern features that don't work on Windows 7 with newer PowerShell versions, despite the DOTNET_EnableWriteXorExecute=0 workaround allowing the application to run.

Всего записей: 18175 | Зарегистр. 14-10-2001 | Отправлено: 17:54 16-06-2025
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Браузер Microsoft Edge опирается на Chromium, который написан на С++. Этот язык, как те же C, Rust и Python, имеет свою сетевую библиотеку. Таким образом, если в ОС не хватает сетевых функций и ОС не получает официальных обновлений, то это не конец света. Поэтому даже на Windows XP можно создать защищённое соединение по TLS 1.3, используя утилиту Curl или браузер Supermium.
 
А вот PowerShell всецело опирается на кухню Microsoft с другой идеологией. Если в ОС чего-то не хватает, то тебя скорее высмеют, призвав срочно обновить компьютер, чем добавят недостающую функцию в NET. Кстати, этим недугом поражён и язык зумеров Go. Плевали они на условные бразильские фавелы, где пел Майкл Джексон и где возможности и приоритеты людей отличаются от заднеприводной Калифорнии. И тоже ведь ирония: они нарочито беспокоятся об углеродном следе и загрязнении Мирового океана, но тут же твердят: «Железо теперь дешёвое, почаще выбрасывайте старое и покупайте новое».  
 
Проиллюстрируем разницу подходов с помощью HTTPS-подключения к голому IP-адресу.
Т.к. Windows 7 этого ещё не умеет, то скрипты на PowerShell и программы на Go выдают ошибку.
 
PowerShell

Код:
$ cat doh.ps1
$response = (iwr https://8.8.8.8/resolve?name=cern.ch).content | convertfrom-json
foreach ($a in $response.Answer) {$a.data}

 
$ pwsh -f doh.ps1
Invoke-WebRequest: X:\Test\doh.ps1:1
Line |
   1 |  $response = (iwr https://8.8.8.8/resolve?name=cern.ch).content | conv …
     |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'.

 
$ sed -i s/8.8.8.8/dns.google/ doh.ps1 && pwsh -f doh.ps1
188.184.77.250

Go

Код:
$ doggo cern.ch --short @https://8.8.8.8/dns-query
level=ERROR msg="error in lookup" error="Post \"https://8.8.8.8/dns-query\": tls: failed to verify certificate: x509: certificate is valid for 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844, 2001:4860:4860::6464, 2001:4860:4860::64, not 8.8.8.8"
 
$ doggo cern.ch --short @https://dns.google/dns-query
188.184.77.250

C, C++, Rust, Python

Код:
$ curl -s -H "accept: application/dns-json" "https://8.8.8.8/resolve?name=cern.ch" | jq -r .Answer[].data
188.184.77.250
 
$ dig cern.ch +short +https @8.8.8.8
188.184.77.250
 
$ dns-over-https -u https://8.8.8.8/dns-query && nslookup cern.ch
Name:    cern.ch
Addresses:  2001:1458:d00:3c::100:2f9
            188.184.77.250

 
$ cat doh.py
import httpx
import dns.message
import dns.query
import dns.rdatatype
where = "https://8.8.8.8/dns-query"
qname = "cern.ch"
with httpx.Client() as client:
    q = dns.message.make_query(qname, dns.rdatatype.A)
    r = dns.query.https(q, where, session=client)
    for answer in r.answer:
        print(answer)

 
$ python doh.py
cern.ch. 171 IN A 188.184.77.250

 
KLASS
Старожилы форума беседуют об особенностях PowerShell под Windows 7.
Curl поставляется с Windows 10, упомянул для сравнения сетевой функции.




При чем тут Curl, название раздела не осилили?
Виноват, проспал про то, что Curl уже встроен в ОС.

Всего записей: 1060 | Зарегистр. 01-03-2003 | Отправлено: 20:38 16-06-2025 | Исправлено: kraeved, 06:10 17-06-2025
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz

Цитата:
скрипты чушь какая то. скачивающую утилиту немного переделать чтоб она данные о скачивании выводила для простоты, а потом ее можно использовать в других батниках

ну-ну... утилиту проще переделать, чем изменить скрипт? говорю же, хозяин-барин...
если говорить об утилитах... есть такая прога, КИТ - оснащена возможностями сбора программ с различных сайтов-источников, сохраняет данные в локальную базу, работающую с библиотекой sqlite, возможно составлять свои листы программ, формировать парсеры для работы с провайдерами, а также формирует из базы готовые программы в различных форматах... Вот это специализированная утилита, для телепрограммы ... а батники с утилитами скачивания - это, как раз и есть чушь, костыли неимоверные... ну, да ладно, я ведь не уговариваю, у каждого свои таракашки и свои представления об удобстве.

Всего записей: 3253 | Зарегистр. 03-02-2009 | Отправлено: 21:24 16-06-2025 | Исправлено: YuS_2, 21:25 16-06-2025
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kraeved

Цитата:
 тебя скорее высмеют, призвав срочно обновить компьютер, чем добавят недостающую функцию в NET, который поставляется вместе с PowerShell.  

 
Там всё опенсорц.  
Раз мало кому надо - можно тщательнее поискать сторонние форки или сделать свой.

Всего записей: 18175 | Зарегистр. 14-10-2001 | Отправлено: 21:28 16-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
этих скриптовых языков можно придумать целый вагон, для решения узких задач, когда на нормальном языке программирования можно решить любую задачу универсально, фактически понаделав утилит для батников я свой скриптовый язык сделал.

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 02:37 17-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
<nul set /p strTemp=%_str%

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

Цитата:
<nul set /p strTemp="%_str%"

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 17:11 19-06-2025 | Исправлено: bomzz, 19:46 22-06-2025
bluff

Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
westlife
Добрый вечер, не подскажите где сейчас вы выкладываете AutoSettingsPS ,давно не заходил, и тут большие перемены, долбодятел модератор переиначил темы ,не могу теперь найти,зарание спасибо ,ибо заблокирует это существо ))
ups. Нашел тему, далеко запрятали ))

Всего записей: 592 | Зарегистр. 25-01-2024 | Отправлено: 21:53 19-06-2025 | Исправлено: bluff, 21:59 19-06-2025
Twitcher



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Win 11. Как убрать ассоциации с файлом PhotoViewer.dll из реестра? У меня этого файла вообще нет. Нужны ассоциации с файлом JPEGView.exe...
 
Доступа к изменению система не даёт... NSUDO не спасает...
 

 
Может, кто умелый скрипт напишет для смены ассоциаций? о.О
 

Всего записей: 831 | Зарегистр. 19-11-2024 | Отправлено: 05:32 29-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никто утилитой FART не пользовался? может есть альтернативы для замены текста?

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 16:02 29-06-2025
shrmn



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Twitcher

Цитата:
Как убрать ассоциации с файлом PhotoViewer.dll из реестра?

1. Открыть командную строку от имени администратора.
2. Ввести команду для изменения ассоциаций:
assoc .jpg=JPEGView.File
ftype JPEGView.File="C:\Program Files\JPEGView\JPEGView.exe" "%1"

Всего записей: 4702 | Зарегистр. 17-12-2002 | Отправлено: 16:07 29-06-2025
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz

Цитата:
никто утилитой FART не пользовался? может есть альтернативы для замены текста?

PowerShell
 
shrmn

Цитата:
1. Открыть командную строку от имени администратора.
2. Ввести команду для изменения ассоциаций:
assoc .jpg=JPEGView.File
ftype JPEGView.File="C:\Program Files\JPEGView\JPEGView.exe" "%1"

На Win10/11 не всё так просто

----------
Разум когда-нибудь победит

Всего записей: 3790 | Зарегистр. 09-02-2003 | Отправлено: 10:29 30-06-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
это альтернатива cmd а не замене строк.
 
никто не может написать команду для SED множественной замены части строки в UTF-8 документе?

Всего записей: 3586 | Зарегистр. 29-03-2016 | Отправлено: 01:57 01-07-2025
MyAnswer

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Пожалуйста, обьясните что это такое :
FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /quiet /norestart
Что оно делает? Если это удаляет-отключает пакет, то можно ли так удалить другие, подобные пакеты?
Спасибо.

Всего записей: 34 | Зарегистр. 28-05-2025 | Отправлено: 06:42 01-07-2025
mithridat1



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz

Цитата:
 никто не может написать команду для SED множественной замены части строки в UTF-8 документе?

Поскольку SED изначально утилита из мира *nix то и спрашивать лучше в соответствующем топике UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl

Всего записей: 5188 | Зарегистр. 05-01-2006 | Отправлено: 08:49 01-07-2025 | Исправлено: mithridat1, 08:50 01-07-2025
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzz

Цитата:
это альтернатива cmd а не замене строк.

В первую очередь это достаточно мощный скриптовый язык.

----------
Разум когда-нибудь победит

Всего записей: 3790 | Зарегистр. 09-02-2003 | Отправлено: 11:38 01-07-2025
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis

Цитата:
В первую очередь это достаточно мощный скриптовый язык.

Ну, привык человек шурупы молотком закручивать, а шуруповерты все отвергает, максимум отвертку хочет, не более того... зачем уговаривать?

Всего записей: 3253 | Зарегистр. 03-02-2009 | Отправлено: 12:22 01-07-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru