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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

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



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 18:33 22-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Это из unix shell
Трудное наследие...
(А кому-то лакомая привычная деталька)  
 
Зато -join '|' генерит законный регэксп, для которых есть -match.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 18:52 22-02-2019 | Исправлено: LevT, 18:56 22-02-2019
YuS_2



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

Цитата:
зачем мне что-то сравнивать?

Дык, -cnotlike - это "comparison operator" же
 
Для наглядности, упрощенное, но аналогичное выражение:

Код:
$a = 1,2,3
$b = 2,3,4
$a|?{$_ -notlike $b}
1
2
3

- это вед совсем не то, что требовалось, правильно?
 
А вот -match, позволяет использовать регэкспы с шаблоном перечисления, для этого надо коллекцию преобразовать в такой шаблон... что, собственно, и предложили westlife и LevT
т.е. используя, пример с $a и $b

Код:
$ofs = '|'
"$b"
2|3|4

- получаем шаблон регулярки
и:

Код:
$a|?{$_ -notmatch $b}
1

- это уже ближе к истине.
но, имхо, LevT прав и лучше использовать не подмену значения автопеременной, а явное выражение преобразования коллекции в шаблон регэкспа, это и более читабельно, и менее чревато неожиданными результатами.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:00 22-02-2019
TomasAnders



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет ребята! Нужна консультация, дело вот в чём: с сайта Бонгакамса выкачиваю стримы с помощью youtube-dl + FFmpeg через запуск батника, который открывает консоль командной строки и т.д.  
Так вот: часто бывает так, что стрим заканчивается (напрмер на обеденный перерыв) и тогда запись видеопотока останавливается, а окно консоли так и висит на рабочем столе. А можно ли сделать так, чтоб по окончании стрима это окно самозакрывалось допустим через 120 сек? А ещё лучше чтоб оно не закрывалось, а находилось в дежурном режиме. И как только стрим начинается снова, то оно бы опять захватывало видео и продолжало бы качать дальше. Такое реально замутить?

Всего записей: 77 | Зарегистр. 05-09-2017 | Отправлено: 09:50 24-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я смотрю, кто-то оскорбился за скопипащенный из гугля фуфлокод и настучал модерам
(хорошо, что статьи за оскорбление копипасты пока ещё нет в УК)
 
Чешу вот репу, в чём моя ошибка.
Ответа нет от слова вообще.. разве что может кому-то непонятно моё исправление.
Может, комментарии требуются?
 
 
Добавлено:
 
Добавил комментарии.
Особенность их в универсальности: для 85% повторно встречающихся задач существует скрипт, который можно написать по этим комментариям.
Если удалить последнюю строчку в образце, то можно целиком скопипастить такой скрипт и получится годная основа для оставшихся 15%: достаточно дописать недостающее.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:08 25-02-2019 | Исправлено: LevT, 11:08 25-02-2019
YuS_2



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

Цитата:
кто-то оскорбился за скопипащенный


Цитата:
Чешу вот репу, в чём моя ошибка.

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

 
 
 

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:24 25-02-2019 | Исправлено: YuS_2, 11:26 25-02-2019
LevT



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

YuS_2
Я изрядно удивился тому, что мне вдруг прилетело красное замечание (не прошло и недели!)
Значит, кто-то очень настойчиво истребовал "компенсации по суду" по этому поводу.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:40 25-02-2019
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По поводу $OFS.
почему тут другой подход используют?
https://github.com/Disassembler0/Win10-Initial-Setup-Script/pull/165#issuecomment-453867757

Код:
 
{$appsToKeep -notcontains $_.Name}
 

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 13:13 25-02-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Потому что у тебя в $apps есть строка с wildcard *
Повершел не везде умеет их разворачивать: например см. хелпы.
В командлетах каждый параметр исходно этого не умеет - за тем исключением, где писатель командлета позаботился соотв. параметр научить.
 
Научить оператор -contains понимать wildcard-ы задача стрёмная и неблагодарная: всегда найдётся клиент, который будет иметь в виду не то, что реализует разработчик.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 13:46 25-02-2019 | Исправлено: LevT, 13:46 25-02-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
умеешь ты запутать... не лей воду...
все проще...
 
farag

Цитата:
почему тут другой подход используют?  

Потому что, как я писал выше:
 22-02-2019

Цитата:
В операциях сравнения, в правой части выражения, нельзя использовать коллекцию.

 
А здесь коллекция в левой части и сравнение идет с каждым элементом в правой части, но последовательно...
Используем всё тот же упрощенный пример:

Код:
$a=1,2,3
$b=2,3,4
$a|?{$b -notcontains $_}
1

- сравните с предыдущим примером, где коллекция в правой части выражения:

Код:
$a|?{$_ -notcontains $b}

- вот и вся разница.
 
Здесь, главное не запутаться, что и с чем требуется сравнить, т.к. результат можно получить не тот, который ожидается, т.е.:

Код:
$b|?{$a -notcontains $_}
4

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:55 25-02-2019 | Исправлено: YuS_2, 14:06 25-02-2019
farag



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 14:03 25-02-2019
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
-in и -notin используют коллекцию в правой части.

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 14:05 25-02-2019
YuS_2



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

Цитата:
-in и -notin используют коллекцию в правой части.

Да, это единственные операторы (которые ввели в PS v3.0), у которых синтаксис наиборотошный
У всех так:

Код:
      Syntax:  
          <Reference-values> -Contains <Test-value>

а у этих так:

Код:
      Syntax:  
         <Test-value> -in <Reference-values>

А это ещё один камень в огород разрабов, ибо получается: "кто в лес, а кто и по дрова" и никак иначе... надо просто это запоминать, или справку перечитывать каждый раз, чтобы не забылось

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:19 25-02-2019
westlife



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

Цитата:
почему тут другой подход используют?  

Дополню всех выше отписавшихся.
Подход используется в зависимости от цели, и знаний PS. Важно только чтобы был результат.
Но также подход может быть универсальным или нет. Там как раз подход не универсальный и вот почему.
Например оператор -contains, как и -in проверяют точное совпадение, это важно. Об этом вам написал LevT сложным языком.
 
А для -match можно указать как угодно. Для -like попроще.
 
Вот пример для тестов

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 14:24 25-02-2019
YuS_2



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

Цитата:
Например оператор -contains, как и -in проверяют точное совпадение, это важно.

Тут ещё важно то, что операторы содержания:  
(not)contains и (not)in, возвращают исключительно булевы значения, при первом же найденном совпадении (что работает быстрее чем match или like), но не поддерживают ни регулярные выражения, ни маски '*'
А операторы (not)match и (not)like, возвращают именно найденные значения, если оно не единственное (в этом случае будет True либо False при отсутствии совпадения совсем), кроме того match поддерживает регэкспы, а like - маски '*'

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



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

Цитата:
А это ещё один камень в огород разрабов, ибо получается: "кто в лес, а кто и по дрова" и никак иначе... надо просто это запоминать, или справку перечитывать каждый раз, чтобы не забылось

 
Не кидайся почём зря камнями )
Синтаксис приближен к человеческому языку, кстати вкупе с семантикой.
 
Другое дело, что применяющий их легко становится "обезьяной с гранатой" - если не до конца отдаёт себе отчёт в своих намерениях и воображает наличие в PS искусственного интеллекта там, где его никто не обещал.
 
 
Добавлено:

Цитата:
Тут ещё важно то, что операторы содержания:  
(not)contains и (not)in

 
Эти два оператора - теоретико-множественные.
А теория множеств в этих основах согласна с человеческим языком.
 
 
Добавлено:
В языке можно сказать и так, и эдак  
Разрабы не взялись решить за всех, как им будет удобнее

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:11 25-02-2019 | Исправлено: LevT, 15:58 25-02-2019
YuS_2



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

Цитата:
Не кидайся почём зря камнями

Это уж я сам решу, кидать или подумать...
Но пока:

Цитата:
Эти два оператора - теоретико-множественные.  

ты вместо размазанного теоретизирования, лучше дополни четко и ясно:
Чем отличаются операторы -(not)contains и -(not)in друг от друга?

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:58 25-02-2019
LevT



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

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:59 25-02-2019
TomasAnders



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребяты, а подскажите пожалуйста тему, в которую надо обратиться на этом форуме, чтоб с высокой долей вероятности подсказали решение вот на какой вопрос:  
 
с сайта Бонгакамса выкачиваю стримы с помощью youtube-dl + FFmpeg через запуск батника, который открывает консоль командной строки и т.д.  
Так вот: часто бывает так, что стрим заканчивается (напрмер на обеденный перерыв) и тогда запись видеопотока останавливается, а окно консоли так и висит на рабочем столе. А можно ли сделать так, чтоб по окончании стрима это окно самозакрывалось допустим через 120 сек? А ещё лучше чтоб оно не закрывалось, а находилось в дежурном режиме. И как только стрим начинается снова, то оно бы опять захватывало видео и продолжало бы качать дальше. Такое реально замутить?

Всего записей: 77 | Зарегистр. 05-09-2017 | Отправлено: 16:16 25-02-2019
YuS_2



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

Цитата:
перестановкой аргументов, и ничем более.

Так вот о чем, собственно и речь - зачем два одинаковых оператора, один из которых примечателен только тем, что синтаксис расположения элементов выражения выбивается из общей логики синтаксиса остальных операторов? Какая необходимость была ввода этого оператора?
 
TomasAnders

Цитата:
подскажите пожалуйста тему, в которую надо обратиться на этом форуме, чтоб с высокой долей вероятности подсказали решение вот на какой вопрос:

Да здесь могли бы, если бы Вы описали что и как происходит и показали бы сам сценарий...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:11 25-02-2019
Открыть новую тему     Написать ответ в эту тему

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