Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Добавить в код PowerShell переменную данных из txt файла

Ответить
Настройки темы
PowerShell - [решено] Добавить в код PowerShell переменную данных из txt файла

Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: temphard
Дата: 28-10-2023
Здравствуйте.
Использую такой код PowerShell
Код: Выделить весь код
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$session.Cookies.Add((New-Object System.Net.Cookie("AppSession", "7d17c52a80d9c25d288ab1585", "/", "exe.io")))
$session.Cookies.Add((New-Object System.Net.Cookie("csrfToken", "c7d46cce802f956bde8762f34b65daa4fbcf6d6abdfe555b880fb10f9c114c8e4c23c2bd6934cb3", "/", "exe.io")))
Invoke-WebRequest -UseBasicParsing -Uri "https: //exe.io/member/links/hide/CdrhjyEjVRs" `
-Method POST `
-WebSession $session `
-Headers @{
  "Accept-Encoding" = "gzip, deflate, br"
  "Upgrade-Insecure-Requests" = "1"
  "Sec-Fetch-Dest" = "document"
  "Sec-Fetch-Mode" = "navigate"
  "Sec-Fetch-Site" = "same-origin"
  "Sec-Fetch-User" = "?1"
  "TE" = "trailers"
} `
-Body "_method=POST&_csrfToken=c7d46cce802f956bde8762f34b65daa4fbcf6d6abdfe555b880fb10f9c114c8e4c23c2bd6934cb3&_Token%5Bfields%5D=28181cf9aceff27%3A&_Token%5Bunlocked%5D=adcopy_challenge%257Cadcopy_response%257Ccaptcha_code%257Ccaptcha_namespace%257Cg-recaptcha-response"
Нужно в определенных местах, (выделенных жирным шрифтом) вставить переменную, чтобы эти данные брались из отдельных txt файлов.

Например:
7d17c52a80d9c25d288ab1585 из файла appsession.txt
https: //exe.io/member/links/hide/CdrhjyEjVRs из файла url.txt
28181cf9aceff27%3A из файла token.txt

В файле appsession.txt всегда содержиться только одна строка, которая определяет сессию.
А в файлах url.txt и token.txt может быть тысячи строк. И каждый номер строки в одном файле связан с номером строки в другом файле.
Пожалуйста помогите решить задачу. Для меня переменные - это пока что темный лес.
Спасибо.

Отправлено: 19:36, 28-10-2023

 

Аватара для NickM

Ветеран


Contributor


Сообщения: 4635
Благодарности: 1115

Профиль | Отправить PM | Цитировать


Цитата temphard:
В файле appsession.txt всегда содержится только одна строка, которая определяет сессию.
»
Например так:
Код: Выделить весь код
$appsession = Get-Content -Path .\appsession.txt
Цитата temphard:
А в файлах url.txt и token.txt может быть тысячи строк. И каждый номер строки в одном файле связан с номером строки в другом файле. »
Например так:
Код: Выделить весь код
0..(Get-Content -Path .\url.txt | measure).Count | ForEach-Object {
$url = (Get-Content -Path .\url.txt)[$_];
$token = (Get-Content -Path .\token.txt)[$_]
}

Отправлено: 21:55, 28-10-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


NickM,
Спасибо.
Но признаюсь, никак не пойму как мне это применить к моему коду.
Методом тыка пытаюсь вставить то здесь, то там, но не выходит.
Окажите милость, вставьте ваше решение в мой код.

Отправлено: 22:27, 28-10-2023 | #3


Аватара для NickM

Ветеран


Contributor


Сообщения: 4635
Благодарности: 1115

Профиль | Отправить PM | Цитировать


Попробуйте так, пути к файлам можете передать нужные Вам + проверьте на малом количестве запросов, 1-2:
Код: Выделить весь код
$appsession = Get-Content -Path .\appsession.txt
1..(Get-Content -Path .\url.txt | measure).Count | ForEach-Object {
$url = (Get-Content -Path .\url.txt)[$_-1];
$token = (Get-Content -Path .\token.txt)[$_-1]

#Ваш код здесь начинается
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$session.Cookies.Add((New-Object System.Net.Cookie("AppSession", "$appsession", "/", "exe.io")))
$session.Cookies.Add((New-Object System.Net.Cookie("csrfToken", "c7d46cce802f956bde8762f34b65daa4fbcf6d6abdfe555b880fb10f9c114c8e4c23c2bd6934cb3", "/", "exe.io")))
Invoke-WebRequest -UseBasicParsing -Uri "$url" `
-Method POST `
-WebSession $session `
-Headers @{
  "Accept-Encoding" = "gzip, deflate, br"
  "Upgrade-Insecure-Requests" = "1"
  "Sec-Fetch-Dest" = "document"
  "Sec-Fetch-Mode" = "navigate"
  "Sec-Fetch-Site" = "same-origin"
  "Sec-Fetch-User" = "?1"
  "TE" = "trailers"
} `
-Body "_method=POST&_csrfToken=c7d46cce802f956bde8762f34b65daa4fbcf6d6abdfe555b880fb10f9c114c8e4c23c2bd6934cb3&_Token%5Bfields%5D=$token&_Token%5Bunlocked%5D=adcopy_challenge%257Cadcopy_response%257Ccaptcha_code%257Ccaptcha_namespace%257Cg-recaptcha-response"
#Ваш код здесь заканчивается

}
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:13, 28-10-2023 | #4


Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата NickM:
Попробуйте так... »
Отлично! Работает! Ваш наглядный пример поможет мне хотя бы немножко разобраться в переменных.
Огромное вам спасибо!

Отправлено: 00:59, 29-10-2023 | #5


Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


NickM,
Еще один вопрос:
Можно ли мой код PowerShell запускать непосредственно в bat файле?

Сейчас код PowerShell я размещаю в файле myscript.ps1 и запускаю этот файл с помощью команды в *.bat файле:
Код: Выделить весь код
powershell -executionpolicy RemoteSigned -file myscript.ps1
А мне нужно чтобы код PowerShell был размещен непосредственно в bat файле.
Такое возможно?

Отправлено: 11:41, 31-10-2023 | #6


Аватара для NickM

Ветеран


Contributor


Сообщения: 4635
Благодарности: 1115

Профиль | Отправить PM | Цитировать


Сценарий лежит рядом с *.cmd:
Код: Выделить весь код
powershell.exe -noprofile -executionpolicy bypass -file "%~dp0myscript.ps1"
Цитата temphard:
Можно ли мой код PowerShell запускать непосредственно в bat файле? »
В чём профит?
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:52, 31-10-2023 | #7


Новый участник


Сообщения: 44
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата NickM:
В чём профит? »
Я использую Automatic Mouse and Keyboard. Там есть функция запуска Command.
Пишу скрипт, чтобы программа читала все необходимые данные и выполняла их непосредственно в Command. Для меня это будет намного удобнее.

Цитата NickM:
Сценарий лежит рядом с *.cmd: »
Это ответ?
Здесь все равно используется файл myscript.ps1.
Или я что-то не так понял?

Отправлено: 11:57, 31-10-2023 | #8


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


Цитата temphard:
Здесь все равно используется файл myscript.ps1.
Или я что-то не так понял? »
Вам шашечки или ехать?
В пакетных сценариях cmd, как правило, возникают проблемы с кодировкой, со спецсимволами и некоторые другие ограничения.
Вам привели строку, которую необходимо поместить в пакетный сценарий cmd и оттуда будет выполняться сценарий powershell - это наиболее корректный вариант, с минимизацией различных исключительных ситуаций, если так уж необходимо выполнять запуск именно из пакетного сценария cmd.
И да - это ответ на Ваш вопрос.

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:45, 31-10-2023 | #9


Аватара для NickM

Ветеран


Contributor


Сообщения: 4635
Благодарности: 1115

Профиль | Отправить PM | Цитировать


Цитата temphard:
Там есть функция запуска Command.
Пишу скрипт, чтобы программа читала все необходимые данные и выполняла их непосредственно в Command. »
Т.е. Вы хотите избежать использования файлов вообще? Даже без временных?

Готовых идей предложить не могу, т.к. никогда таким вопросом не задавался .

Как вариант, можно было бы формировать/ извлекать временный файл из того же BASE64 или что-то типа того.
Какой-то огород горожу - речь же о cmd, а не powershell.

Последний раз редактировалось NickM, 31-10-2023 в 13:00.


Отправлено: 12:54, 31-10-2023 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Добавить в код PowerShell переменную данных из txt файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Добавить блоки строк из одного txt файла в другие txt файлы Alexander_88 Скриптовые языки администрирования Windows 7 06-07-2019 00:15
Любой язык - [решено] Добавить строки из одного txt файла в другие txt файлы Alexander_88 Скриптовые языки администрирования Windows 4 02-07-2019 20:29
CMD/BAT - Скрипт, для чтения нужных строк из txt файла в переменную mr.R Скриптовые языки администрирования Windows 1 26-07-2012 12:59
Любой язык - [решено] Скрипт использующий переменную из файла .txt XXXp Скриптовые языки администрирования Windows 27 18-05-2011 21:34
CMD/BAT - [решено] Ввод данных в переменную из txt-файла river123 Скриптовые языки администрирования Windows 1 10-01-2011 18:43




 
Переход