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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

KLASS



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

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

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

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

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

Всего записей: 11106 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mr_SMiT
curl не является системным средством виндовз - и потому здесь офтопик.
Есть другой curl - псевдоним командлета Invoke-WebRequest в Powershell, который идёт с виндой  
 
Но линуксоиды были сильно против, и из следующей кроссплатформенной версии PS его убрали.
Так что вы прежде определитесь, какой курл и в какую тему.
 

Всего записей: 17144 | Зарегистр. 14-10-2001 | Отправлено: 11:17 11-03-2018
Mr_SMiT



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

 
Добавлено:
Ничего не понимаю. Я как раз про CMD (BAT) которые для Windows спрашивал. И Curl про который говорил в шапке этой темы имеется. В старой ветке по батникам зачастую помогали и подобных вопросов даже не возникало.




Дал ведь ссылку в предыдущем посту. Все, что не по Windows оффтоп.

Всего записей: 650 | Зарегистр. 18-07-2006 | Отправлено: 11:38 11-03-2018 | Исправлено: KLASS, 11:41 11-03-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mr_SMiT
 
Ставьте здесь вопрос иначе: помогите мне сделать ЧТО, а не КАК
Раз просите о помощи - значит, средства решения вашей задачи выбирают помогающие.
Может, помогут curl-ом, а может иначе.
 
Тонкости именно линуксячьих инструментов (коли уж вам упёрлись именно они) - в линуксоидной теме.

Всего записей: 17144 | Зарегистр. 14-10-2001 | Отправлено: 11:55 11-03-2018 | Исправлено: LevT, 11:56 11-03-2018
Mr_SMiT



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

Цитата:
Может, помогут curl-ом, а может иначе.

Вообще нет разницы, важен результат. Просто другой утилиты с такими возможностями не знаю.

Всего записей: 650 | Зарегистр. 18-07-2006 | Отправлено: 12:00 11-03-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mr_SMiT
ну тогда ставьте задачу на языке человеческом, а не на птичьем языке параметров юниксовой curl
Я например их вовсе не понимаю и не хочу понимать.
 
Если задача на человеческом языке меня заинтересует - подумаю, как её скормить винде через Invoke-WebRequest
(говорю за себя, а так может кто и курлом захочет помочь - но это будет средство, а не самоцель)
 

Всего записей: 17144 | Зарегистр. 14-10-2001 | Отправлено: 12:07 11-03-2018 | Исправлено: LevT, 12:09 11-03-2018
YuS_2



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

Цитата:
ну тогда ставьте задачу на языке человеческом

Ну, чего там непонятно? Человек хочет авторизоваться на странице с предназначенной для этого формой. Всё, что надо для человеческой задачи лежит под ковриком там...
 
Mr_SMiT
А вот конечная цель не совсем понятна. Что же там необходимо получать в итоге?
Попробовал авторизацию в браузере, но никаких ключевых фраз не увидел... в смысле обозначьте, что именно является ключевой фразой.
 
Примерно так (подсмотрено в тырнетах):
script.ps1

Код:
if($host.version.major -ge 6){write-host Sorry, this version of powershell, script is not working correctly;sleep -s 5;exit}
$url = 'https://cas.x431.com/login?service=http://mycar.x431.com/mycar/softCenter/queryDownloadSofts.action'
$lin = 'здесь_логин'
$pas = 'здесь_пароль'
$s = iwr $url -ses tmp
$frm = $s.forms
$frm.fields['username'] = $lin
$frm.fields['password'] = $pas
$s = iwr -uri ("$url/" + $frm.action) -web $tmp -met post -bod $frm.fields
$s = iwr -uri $url -web $tmp
$s.parsedhtml.body.outertext.split("`r`n") -match "Welcome" # Тут можно обозначить ключевую фразу, которую желаете получить. А в текущем варианте, при успешной авторизации, будет выводиться username, иначе просто слово Login.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 17:36 11-03-2018 | Исправлено: YuS_2, 20:13 11-03-2018
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста небольшой bat файл сделать (для winXP). Я что-то запутался с парсингом имен папок.
Есть вот такая структура папок:
Подробнее...
Это локальный мавен репозиторий. Я хочу его почистить, оставить только последние версии. Я написал сценарий, который проходится по всех папках второго уровня и удаляет их, но как оставить две папки с наибольшей версией (старшую версию с суффиксом -SNAPSHOT и старшую версию без суфиксов)?

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 11:52 14-03-2018
YuS_2



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

Цитата:
Есть вот такая структура папок

Это не структура папок, это просто набор символов, возможно с разделителем ";"
А чтобы помочь Вам, необходимо сначала осмыслить, что Вы желаете получить в итоге...
1. Старшая версия - это какая? Ибо наибольшая - не всегда старшая.
2. Уровней каталогов пока не видно по тому списку.
3. Установлен ли в XP powershell? Если нет, рекомендую установить, ибо решение на нем Вам не поможет, если его не будет.
4. Пункты выше - не требования, а рекомендации. Возможно, кто-то предложит решение на CMD.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 17:38 14-03-2018 | Исправлено: YuS_2, 17:39 14-03-2018
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. Для демонстрации структуры папок действительно лучше воспользоваться другим способом
Например командой
Код:
tree <путь к корню структуры> >d:\tree.txt

 
2. И указать формальный признак по которому определять какие папки оставлять

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:11 14-03-2018
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу прощения. Когда вставлял текст там были символы | и - (как раз вывод команды tree). Не знаю почему символы заменились на коды. Наверно из за юникода. Вот тоже самое на скриншоте https://i.imgur.com/8hEmlA2.png
 
Наибольшая по цифрах - старшая. Например версия 3.3.0.18 больше чем 3.3.0.3, или версия 3.4.0.0 больше чем 3.3.999.99. Аналогично с приставкой SNAPSHOT, версия 3.4.0.5-SNAPSHOT выше чем 3.3.0.6-SNAPSHOT.
 
Хотелось бы решение CMD. Я собирался спросить тут http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=27959 , но тему закрыли.

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 23:53 14-03-2018
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ой, не туда запостил, извините
 

Всего записей: 17144 | Зарегистр. 14-10-2001 | Отправлено: 01:44 15-03-2018 | Исправлено: KLASS, 01:59 15-03-2018
NIKZZZZ



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

Код:
@echo off
set v0=0
set v1=0
set v2=0
set v3=0
set f=
for /f "delims=" %%k in ('dir /b /a:d *.*.*.*^|find /i /v "-SNAPSHOT"') do call :compare "%%~dfk"
set v0=0
set v1=0
set v2=0
set v3=0
set f=
for /f "delims=" %%k in ('dir /b /a:d *.*.*.*^|find /i "-SNAPSHOT"') do call :compare "%%~dfk"
goto :eof
:compare
for /f "tokens=1,2,3,4 delims=.-" %%a in ("%~nx1") do (
  set n0=%%a
  set n1=%%b
  set n2=%%c
  set n3=%%d
)
if %n0% GTR %v0% goto _1  
if %n0% LSS %v0% goto _2  
if %n1% GTR %v1% goto _1  
if %n1% LSS %v1% goto _2  
if %n2% GTR %v2% goto _1  
if %n2% LSS %v2% goto _2  
if %n3% GTR %v3% goto _1
if %n3% LSS %v3% goto _2
goto :eof
:_1
if /i not "%f%"=="" rd /s /q "%f%"
set v0=%n0%
set v1=%n1%
set v2=%n2%
set v3=%n3%
set f=%~dpnx1
goto :eof
:_2
rd /s /q "%~dpnx1"  
goto :eof


Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 05:31 15-03-2018
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
Спасибо. Круто работает! Фиг бы сам такое написал.

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 13:51 15-03-2018
msmih



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
буду признателен еще за одну подсказку. Есть скрипт, написанный на python (что не суть важно).
Запускаю питоновский скрипт через cmd/bat. Результатом будет определенная строка. Как эту строку-результат присвоить переменной для дальнейшей работы?

Всего записей: 1192 | Зарегистр. 29-01-2006 | Отправлено: 19:30 17-03-2018
YuS_2



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

Цитата:
Запускаю питоновский скрипт через cmd/bat. Результатом будет определенная строка. Как эту строку-результат присвоить переменной для дальнейшей работы?


Код:
for /f %%i in ('питоновский скрипт с экранированными спецсимволами.script') do set var=%%i

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:43 17-03-2018
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
msmih
Смотрите хелп for /?

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:46 17-03-2018
Smitis



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

Цитата:
питоновский скрипт с экранированными спецсимволами

Уточню, что питоновский скрипт должен отправить результат работы в стандартный поток ввода-вывода (через print) который перехватит cmd

Код:
for /f %%# in ('python.exe script.py') do set "result=%%~#"

 


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

Всего записей: 3213 | Зарегистр. 09-02-2003 | Отправлено: 20:27 17-03-2018
NIKZZZZ



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

Код:
for /f "delims=" %%# in ('python.exe script.py') do set "result=%%~#"  

иначе строка с пробелами будет не корректно истолкована.

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:44 17-03-2018
VidelSamogO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задачи, нужные всем компьютерщикам, только они об этом до поры не знают. Например, такую задачу сейчас пытаюсь решить. Это задача по разлинковке (отвязке) жёстких ссыок в конкретном каталоге. Ну и, естественно, - его подкаталогах. То есть, все рано или поздно сталкиваются с проблемой нехватки места на диске. И часто начинают искать дубликаты, но не пытаясь их удалить, а например, залинковав их в жёские ссылки. Но потом оказывается, что тестовая програма, которую только скачал в другое место с теми же настройками, которые оказались залинкованными после последней попойки, отказывается работать. Или наоборот - оригинал. Поскольку не поддерживает параметры, привнесённые в настройки тестовой. Так вот, перед запуском новых прог иногда неплохо разлинковать эти файлы настроек в конкретном каталоге. То есть вернуть их в виде независимых копий. Можно это сделать простым копированием папки и возвратом на исходное место - с перезаписью. Но зачем мучать уже дефрагментированный жёсткий диск, если нужно только определить, не ссылка ли файл в данном каталоге, и скопировав его под уникальным именем в другое место (на логический диск с наибольшим свободным местом), вернуть на прежнее с перезаписью, причём переместив закрытые для перезаписи в отдельный каталог с сохранением структуры каталогов для последующего удаления? Вот такая простая задача. Можно конечно долго и нудно выполнять её тотал командиром с плагином, но хотелось бы это делать быстро и оперативно. Загвоздка в одном. В определении - является файл ссылкой. Junction Руссиновича не определил у меня ссылку. Какие дургие проги могут выдать результат для условного оператора в скрипте, который я думаю натравить на целевой каталог со ссылками? В XP finddupe справляется. но выдаёт совершенно неудобный список.

Всего записей: 765 | Зарегистр. 16-08-2008 | Отправлено: 15:44 18-03-2018 | Исправлено: VidelSamogO, 19:01 18-03-2018
LevT



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

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

 
А вот так поступают далеко не все: только особо одарённые.
При нехватке места на томе есть системное средство Виндовз - дедупликация.
Оно есть в серверной винде, но умельцами с MDL выдирается для использования в десятке (для каждого билда).
 
Что до линков, то в powershell вот так их смотрят
https://docs.microsoft.com/en-us/powershell/wmf/5.0/feedback_symbolic
но только в достаточно свежем powershell (XP курит в сторонке)

Всего записей: 17144 | Зарегистр. 14-10-2001 | Отправлено: 17:35 18-03-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru