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

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



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

Цитата:
С днём системного администратора!  

этаж туда
Нуиштопнеоффтоп, небольшой лайфхак:

Цитата:
От функциональной скуки, замкнусь в себе

Скука - вещь в себе, но замыкаться не надо
Разбиваем строку по каждому четвертому символу (любому):

Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г" -split {($args[1]+1)%4 -eq 0}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:10 01-08-2020
iNNOKENTIY21



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

Цитата:
Разбиваем строку по каждому четвертому символу (любому):

Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г" -split {($args[1]+1)%4 -eq 0}  

Иными словами..

Код:
$collection = "0-1,2-3;4-5.6-7+8-9-а-б:в-г".ToCharArray()

$a
$b = @()

for ($i = 0; $i -le $collection.Count; $i++) {
   if (($i+1) % 4 -eq 0) {
       $b += $a
       $a = $null
   } else {
       $a = $a + $collection[$i]
   }
}

$b



 
Добавлено:
Так нагляднее

Код:
# Стиль PowerShell?
"0-1,2-3;4-5.6-7+8-9-а-б:в-г" -split { ($args[1] + 1) % 4 -eq 0 }

# Процедурный
$s = "0-1,2-3;4-5.6-7+8-9-а-б:в-г".ToCharArray()

for ($i = 0; $i -le $s.Count; $i++) {
   if (($i + 1) % 4 -eq 0) { $b += @($a)
       $a = $null
   } else {
       $a = $a + $s[$i]
   }
}

$b

# Функциональный
$Split = { param ($s) { param ($n) $s -split { ($args[1] + 1) % $n -eq 0 } }.GetNewClosure() }
(& $Split -s "0-1,2-3;4-5.6-7+8-9-а-б:в-г").Invoke(4)

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 12:12 01-08-2020
VVL99

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

Цитата:
Разбиваем строку по каждому четвертому символу (любому):
В массив:
Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г".split(/(.{3})./).filter(function(a){return a!=""})

В строку:
Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г".replace(/(.{3})./g,"$1, ")

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 14:24 01-08-2020 | Исправлено: VVL99, 15:43 01-08-2020
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После выхода из спящего режима Windows 7 SP1 x64 на ноутбуке Lenovo ThinkPad Edge E330 отваливается драйвер контроллера USB 3.0. Приходится либо делать перезагрузку, либо идти в диспетчер устройств, там найти собственно контроллер, отключить его и включить обратно.
 
Нужна команда для перезапуска требуемого драйвера, чтобы потом её прописать в планировщик по событию выхода из гибернации.
Есть идеи?

Всего записей: 16481 | Зарегистр. 04-11-2010 | Отправлено: 18:09 01-08-2020 | Исправлено: insorg, 18:09 01-08-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
Там столько в инете вылезает. Не знаешь синтаксис или как гулить? Я через телефон нашел 3 ссылки полезные первые по запросу.

Всего записей: 2476 | Зарегистр. 27-07-2009 | Отправлено: 18:27 01-08-2020
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Видимо, или я тупой (а вдруг?), или что-то пошло не так, но гугл упорно выдаёт своё, но у меня все результаты либо про падающие драверы видео, либо пытаются убить диспетчер печати при помощи taskkill...

Всего записей: 16481 | Зарегистр. 04-11-2010 | Отправлено: 18:40 01-08-2020
generator324

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

Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 18:43 01-08-2020
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Крайне желательно обойтись без сторонних утилит.
Тем более, раз винда в гуях даёт слелать действие, то и на комстроку должно быть решение.

Всего записей: 16481 | Зарегистр. 04-11-2010 | Отправлено: 18:48 01-08-2020
generator324

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

Цитата:
Крайне желательно обойтись без сторонних утилит.  

Не такая уж она и сторонняя - тот же M$...

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

Ну, вольному - воля...

Всего записей: 1090 | Зарегистр. 11-01-2019 | Отправлено: 19:58 01-08-2020
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Сторонних - подразумевается отдельно скачиваемых.
Хотя, видимо, придётся где-то брать её.

Всего записей: 16481 | Зарегистр. 04-11-2010 | Отправлено: 19:59 01-08-2020 | Исправлено: insorg, 20:17 01-08-2020
YuS 2



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

Цитата:
Крайне желательно обойтись без сторонних утилит.

Что-то типа:

Код:
Get-PnpDevice -FriendlyName 'Корневой USB*'|disable-PnpDevice -conf:$false

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

Код:
Get-PnpDevice -FriendlyName 'Корневой USB*'|enable-PnpDevice -conf:$false

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 20:53 01-08-2020
YuS 2



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

Цитата:
Так нагляднее

угу, способ-то не единственный, это понятно...
 
VVL99

Цитата:
В массив:

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

Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г" -split {param($x,$y)if($y-lt$x.length/2){$_-eq'-'}}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 06:09 02-08-2020 | Исправлено: YuS 2, 06:09 02-08-2020
iNNOKENTIY21



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

Код:
$i = 0
switch ("0-1,2-3;4-5.6-7+8-9-а-б:в-г".ToCharArray()) {
    {$_ -match '.'} { if (($i + 1) % 4 -ne 0) { $s = $s + $_ } else { $r += @($s); $s = $null } ; $i++}
    Default {"Упссс-с"}
}
$r

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 12:23 02-08-2020
VVL99

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

Цитата:
Разбить строку по определенному символу, но не всю, а только половину строки:

Код:
a = "0-1,2-3;4-5.6-7+8-9-а-б:в-г";a.split("-", a.length/3/2)
Я так понял это такая утренняя гимнастика, тогда чё так народу мало, этож полезно.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 14:28 02-08-2020
YuS 2



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

Цитата:
это такая утренняя гимнастика

типа того...

Цитата:
тогда чё так народу мало, этож полезно.

выходные, на отдыхе все, наверное

Цитата:
split("-", a.length/3/2)

такой метод есть и в powershell, но это не совсем то, что было в условии, вернее даже совсем не то... это подгонка кода под результат, потому как a.length/3/2 - не полстроки, а цифра, указывающая количество символов, которые будут использоваться как разделитель, причем цифра полученная путем деления общего количества символов на 3 и затем на 2...
Строка может быть и такой:

Код:
$str = "0-1,23;45.6-7+8-9-а-б:в-г"

и тут не получим того, что хотелось... в отличие от:

Код:
$str -split {param($x,$y)if($y-lt$x.length/2){$_-eq'-'}}

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

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:01 02-08-2020 | Исправлено: YuS 2, 18:06 02-08-2020
VVL99

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

Цитата:
это не совсем то
Тогда может сразу разделить строку пополам:
Код:
a="0-1,23;45.6-7+8-9-а-б:в-г";(a.substr(0,a.length/2)).split("-")


Цитата:
Кстати, а в javascript реализована возможность использования отрицательных значений в этом методе, т.е. в случае когда отсчет ведется от конца строки, а не от начала?
Да, но если редко пользуешься сложно запомнить.


Код:
var a = "0123456789";
a.substr(-3, 2) // 78 возвращает два символа, с позиции три с конца строки.

Код:
var a = "0123456789";
a.slice(-3, -1)  // 78 возвращает значения от первой указанной позиции до второй (не включая её), начинает отсчёт с позиции 3 (с конца строки) до позиции 1 (с конца строки).

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 19:48 02-08-2020 | Исправлено: VVL99, 22:11 02-08-2020
YuS 2



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

Цитата:
Тогда может сразу разделить строку пополам

Вот, это уже о том, что требовалось...
 

Цитата:
Да, но если редко пользуешься сложно запомнить.

Не-не-не, речь именно о Split... я почему спрашиваю, просто в powershell 5.1 это не работает:

Код:
"0-1,2-3;4-5.6-7+8-9-а-б:в-г" -split '-',-3

а в powershell core (правда, не знаю с какой версии, ибо у меня 7.1 preview), уже работает... т.е. делит строку на три части:

Цитата:
0-1,2-3;4-5.6-7+8-9-а
б:в
г

Я попытался проверить в jscript, но то ли лыжи не едут, то ли...

Код:
var a="0-1,2-3;4-5.6-7+8-9-а-б:в-г";
var b=a.split("-",3);
WScript.Echo(b);

- так работает, но как-то странно, последнюю часть строки не выводит...
а так:

Код:
var a="0-1,2-3;4-5.6-7+8-9-а-б:в-г";
var b=a.split("-",-3);
WScript.Echo(b);

- разбивается вся строка, как будто -3 вообще не существует...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:51 03-08-2020
VVL99

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

Цитата:
речь именно о Split...
Тогда нет.

Цитата:
как будто -3 вообще не существует...
Отрицательное значение интерпретируется как без ограничений, т.е. по умолчанию -1, параметр лимит, означает сколько будет делений строки. В VBS по-другому вроде.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 14:41 03-08-2020
Dremuchiy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите питаюсь удалить письма в определенной базе старше допустим  
 
 
 
Get-Mailbox –Server Exch-DB2 –ResultSize unlimited | Search-Mailbox -SearchQuery 'received:<01/31/2019' –DeleteContent –Force
 
 
 
Search-Mailbox : Имя "Search-Mailbox" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути,
 после чего повторите попытку.
строка:1 знак:60
+ Get-Mailbox -Server  Exch -DB2 -ResultSize unlimited | Search-Mailbox -Searc ...
+                                                            ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Search-Mailbox:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
 
Exchange 2013
Получаю вот такую ошибку...Может кто-то поправить .

Всего записей: 698 | Зарегистр. 16-10-2004 | Отправлено: 12:28 04-08-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Забавный тест на знание PS. У меня 80, но я же деревенский дурачок.

Всего записей: 2476 | Зарегистр. 27-07-2009 | Отправлено: 16:43 04-08-2020 | Исправлено: farag, 16:43 04-08-2020
Открыть новую тему     Написать ответ в эту тему

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