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

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

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



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

Цитата:
Передумывай, пока не наплодил фуфла!

Ты сам-то фуфла не плоди.  
Человек спросил, как рационально получать список ключей, а не как прибавить единицу к строковому значению... с этим, подозреваю, что проблем и не было.
Ты сначала получи сам, такой список ключей в массив, а потом фуфлосоветы раздавай...

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
У меня акробата нету: один ридер где нет нужной farag серии пропертей
 
По-моему, он спросил именно об инструменте для генерации новой проперти в аналогичной серии - и информация о том окружении, в котором такое ему занадобилось, была избыточной.

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



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

Цитата:
У меня акробата нету: один ридер где нет нужной farag серии пропертей

А тестовые ключи сделать никак? "Домохозяйка"?
 

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

Ты думаешь, что проблему составляет преобразование типов и сложение чисел? Не считай людей глупее себя, чтобы не возникало излишних фуфлосоветов. Если же, что-то непонятно - задай дополнительный вопрос по условиям. Всё просто.
Боюсь, что в данном случае, необходимо получить числовую инкрементацию наименований ключей реестра... а это не просто математика, это именно powershell. И в нем, как раз, нет готовых инструментов для подобных задач - напиши такой, в духе твоих советов.
А создать тестовый раздел с ключами:

Код:
$test = "HKCU:\"
$newsec = 'TEST'  
ni -path $test -name $newsec
$newp = $test + $newsec
1..5|
%{new-itemproperty $newp -n "a$_" -val "val$_" -prop 'string'}

- тренируйся

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
 
Это ты не считай farag глупей себя
Делать конкретные вещи повершелом он умеет: я в этом уверен.
Впрочем, отчего бы тебе не последовать собственному совету и не спросить у него самого?

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:57 08-03-2019
YuS_2



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

Цитата:
Делать конкретные вещи повершелом он умеет: я в этом уверен.

так зачем ты с таким пафосом, элементарные вещи расписываешь? Уж это-то не так сложно, прибавить единицу к цифре, которая содержится в строковом значении...
Ты с темы-то не съезжай... показывай своё суперрешение.
 
Добавлено:

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

На всякий случай, чтобы у тебя отпали все сомнения, уточняю:
 07-03-2019

Цитата:
Мне надо добавить новый ключ на единицу больше в цифре, чтобы не перезаписать старый.

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

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



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

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:45 08-03-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Вообще-то ключевым в задаче является
Цитата:
чтобы не перезаписать старый.  

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

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:00 08-03-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
 
Вы конечно домыслили лишку - но нате Вам и так:

Код:
 
$stringarray = (28..30) + 26 | foreach {"a$_"}  
$max = ($stringarray.Substring(1) | Sort -Descending | Select -First 1)  
 
filter Get-Firsthole {
    if ($_ -notin $stringarray) {
        $_
        break
    }
}
 
1..$max | Get-Firsthole
 

 
 

Цитата:
Задача очень красиво решается с помощью труб - создается бесконечный поток, который обрабатывается бесконечное время,

 
Тут опять ёрничает Ваше невежество
В функциональном программировании "бесконечные" списки обычное дело.
Спасает ленивость движков.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 12:16 08-03-2019
YuS_2



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

Цитата:
Вообще-то ключевым в задаче является

Это в идеальном случае, т.е. для общего и универсального решения, но для частного случая:

Цитата:
По данному пути много ключей, начиная с a1, заканчивая примерно a28.

заданы условия, что все промежуточные числа последовательности на месте, т.е. пропуски несущественны.
 
У меня просто есть готовые решения и для одного, и для другого, и для третьего, приходилось сталкиваться.
Т.е. существует вариант для нахождения максимального значения числовой последовательности и по значению цифр, и по количеству ключей, т.е. вариант можно выбрать
и для случая: a5-a88
и для случая: a1-a30
при условии наличия всех промежуточных чисел. У нас в условии задачи оговорено, что они все на месте...
 
Здесь другое непонятно:
Почему супер-мастер, лепит фуфло-отмазки, сьезжает с темы для того, чтобы не решать задачу получения в массив имен ключей реестра, содержащих цифровую последовательность, для дальнейшей обработки.  
А далее-то, уже дело техники... типа получения цифровой части, получение количества ключей, нахождение максимума и т.п. - это всё простейшие задачи. Вот именно эту простоту с пафосом о фуфлоплодах и представил нам супер-мастер...

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



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

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

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

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 12:32 08-03-2019
NIKZZZZ



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

Цитата:
Это в идеальном случае, т.е. для общего и универсального решения

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

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:52 08-03-2019 | Исправлено: NIKZZZZ, 12:56 08-03-2019
YuS_2



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

Цитата:
И чем хуже универсальное решение задачи от частного, если оно проще?

Наоборот, в этом, как раз я поддерживаю LevT, но как правильно, было замечено:

Цитата:
он считает их фуфлокодом, тем не менее сам его и дает.

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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
 
Вот Вам полезная функция для разреженных "ста мульярдов":
 

Код:
 
function Find-FirstHoleWithHashtable {
    begin {
        $ht = [ordered]@{}
        $ea = $ErrorActionPreference
        $ErrorActionPreference = 'SilentlyContinue'
    }
    process {
        $_ | foreach {$ht.Add($_,$null)}     #в хэштаблице ключи уникальны
    }
    end {
        $ErrorActionPreference = $ea
        $ht.Keys | Get-Firsthole
    }
}
 

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



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

Цитата:
Вот Вам полезная функция для разреженных "ста мульярдов"

Не сомневаюсь, что пользуясь google можно найти много полезных функций, скопиастить их, выдав за свое решение.
Но ваш ответ - вот тебе функция, она решит твою задачу, как - не знаю, разбирайся сам, не мое боярское дело, не является решением задачи, а только унижает спросившего - дескать, не умеешь ты goole'ей пользоваться, а вот я умею.
Но задача то была не как найти в google ее решение, а как ее решить.

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:50 08-03-2019 | Исправлено: NIKZZZZ, 14:50 08-03-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
Задачи-то у вас нет.
Вы что-то нафантазировали, а я должен "конкретно решать"?
Предоставьте датасет - отлажу на нём.
 
И хотите верьте, хотите нет - а обе написанные на этой странице функции я родил каждую за несколько минут.
Это технология, а не творчество.
Я ею теперь владею на достаточном уровне, чтобы мозги освободить для более интересного.  
 

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



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

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

Всё, что не загружено работой, со временем атрофируется... увы. И для владельцев тайного ЗНАНИЯ, эта формула - не имеет исключений.
 

Цитата:
Вы что-то нафантазировали, а я должен "конкретно решать"?

Задачу я тебе несколько раз озвучил. Но в очередной раз: "ЭТА ЗАДАЧА не для "мастера", это плохая, негодная задача, посмотрите лучше на мою, которую я в гугле надыбал..."
Вопросов больше не имею...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:05 08-03-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, пожалуйста, междусобойчики (около-темные вопросы) у нас здесь

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 20:17 08-03-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Случайно обратил внимание на скрипт pushover.ps1, приложенный к проге TeraCopy
(его можно запланировать в правом нижнем углу на событие 'On finish')
 

Код:

write-host "Please get your own User Key and App Token on http://pushover.net"
write-host "Press any key to locate this file..."
 
[void][System.Console]::ReadKey($true)
Invoke-Expression "explorer /select,$PSCommandPath"
 
<# remove this line and everything above
 
$parameters = New-Object System.Collections.Specialized.NameValueCollection
 
$parameters.Add("token", "APP_TOKEN")
$parameters.Add("user", "USER_KEY")
 
$parameters.Add("message", "Transfer completed")
$client = New-Object System.Net.WebClient
$client.UploadValues("https://api.pushover.net/1/messages.json", $parameters)
 
remove this line #>

 
Сервис шлёт извещения на мобилки и в браузеры.
Можно добавлять в папку TeraCopy и свои скрипты.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:26 08-03-2019 | Исправлено: LevT, 21:44 08-03-2019
iNNOKENTIY21



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

Код:
# Создание временной папки
$tmpdir = New-Item -ItemType Directory -Path $env:TEMP -Name ([System.Guid]::NewGuid().Guid)
 
# Добавление потока
Add-Content $tmpdir -Stream 'secretStream' -Value 'Secret Information'
 
# Чтение потока
Get-Content $tmpdir -Stream 'secretStream'

Код:
# Не отображает потоки папок?
Get-Item $tmpdir -Stream *

Код:
# Удаление временной папки
del $tmpdir

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 09:12 09-03-2019
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Сам же агитировал за привлечение дотнета, не?
По-моему, оно уместно именно в тех местах, когда нативный повершел не оправдывает ожидания:
 
https://devblogs.microsoft.com/scripting/weekend-scripter-run-c-code-from-within-powershell/
https://stackoverflow.com/questions/604960/ntfs-alternate-data-streams-net  
 
 
Добавлено:
 
А вот и модуль гуглится
https://github.com/schwartzmx/poshADS

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 09:53 09-03-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