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

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

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

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

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



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

Цитата:
Работает, оно?

Рабочее, но

Код:
C:\Users\user> ConvertTo-OrdinalWords 102000000
стодвухмиллионный


Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 19:53 11-11-2020
YuS 2



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

Цитата:
стодвухмиллионный

ну, тот скрипт с озона, более вменяем, имхо, да и проще в редактировании.
Если число разрядов надо больше, чем 99 млн., то просто добавить их по аналогии...
Типа:

Код:
# http://forum.oszone.net/post-2500293.html#post2500293
# увеличен предел (до 999 999 999)
Function Amount {
    param ($Argument)
    $Arg1 = @("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
    $Arg2 = @("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
    $Arg3 = @("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
    $Arg4 = @("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
    $Arg5 = @("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
    If ($Argument -le 0) {
        "ноль"
        break
    }
    $Units = Levels -Number $Argument -Degree 1  
    $Dozen = Levels -Number $Argument -Degree 2
    $Hundred = Levels -Number $Argument -Degree 3
    $Thousand = Levels -Number $Argument -Degree 4
    $Dozen_Thousand = Levels -Number $Argument -Degree 5
    $Hundred_Thousand = Levels -Number $Argument -Degree 6
    $millions = Levels -Number $Argument -Degree 7
    $Dozen_Millions = Levels -Number $Argument -Degree 8
    $Hundred_Millions = Levels -Number $Argument -Degree 9
 
    switch -Regex ($millions) {
        1 {$millions_text = $Arg1[$millions] + "миллион "}
        "[2-4]" {$millions_text = $Arg1[$millions] + "миллиона "}
        "[5-9]" {$millions_text = $Arg1[$millions] + "миллионов "}
    }
    switch -Regex ($Dozen_Millions) {
        1 {$millions_text = $Arg5[$millions] + "миллионов "; break}
        "[2-9]" {$Dozen_Millions_text = $Arg2[$Dozen_Millions]}
    }
    switch -regex($Thousand){
        0 { If ($Dozen_Thousand -gt 0) { $Thousand_text = $Arg4[$Thousand] + "тысяч "}}
        1 {$Thousand_text = $Arg4[$Thousand] + "тысяча "}
        "[2-4]" {$Thousand_text = $Arg4[$Thousand] + "тысячи "}
        "[5-9]" {$Thousand_text = $Arg4[$Thousand] + "тысяч "}
    }
    switch -Regex ($Dozen_Thousand){
        1 {$Thousand_text = $Arg5[$Thousand] + "тысяч "; break}
        "[2-9]" {$Dozen_Thousand_text = $Arg2[$Dozen_Thousand]}
    }
    $Hundred_Thousand_text = $Arg3[$Hundred_Thousand]
    If (($Dozen_Thousand -eq 0) -And ($Thousand -eq 0) -And ($Hundred_Thousand -gt 0)) {
        #"тысяч"
        $Hundred_Thousand_text = $Hundred_Thousand_text + "тысяч "
    }
    $Hundred_Millions_text = $Arg3[$Hundred_Millions]
    If (($Dozen_Millions -eq 0) -And ($Millions -eq 0) -And ($Hundred_Millions -gt 0)) {
        #"миллионов"
        $Hundred_Millions_text = $Hundred_Millions_text + "миллионов "
    }
    $Units_text = $Arg1[$Units]
    switch -Regex ($Dozen){
        1 {$Units_text = $Arg5[$Units]}
        "[2-9]" {$Dozen_text = $Arg2[$Dozen]}
    }
    $Hundred_text = $Arg3[$Hundred]
    $Amount = $Hundred_Millions_text + $Dozen_Millions_text + $millions_text + $Hundred_Thousand_text + `
    $Dozen_Thousand_text + $Thousand_text + $Hundred_text + $Dozen_text + $Units_text
    $Amount
}  
Function Levels {
    param ($Number, $Degree)
    [Math]::Floor([Math]::Floor(
        $Number - ([Math]::Pow(10,$Degree)) * ([Math]::Floor($Number / ([Math]::Pow(10,$Degree))))
    ) / ([Math]::Pow(10,$Degree-1)))
}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 20:08 11-11-2020 | Исправлено: YuS 2, 21:48 13-11-2020
ALEKCEN



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

Цитата:
Get-Service | % {"net start {0}`nsc config {0} start={1}" -f $_.Name, $_.StartType} | Out-File services.txt

это,конечно неплохо...только жаль,что неработает(
в итоге вывод получается такой:
net start  
sc config  start=
и так куча строк
это,конечно тоже,как вариант,остаётся только подставить название службы и тип запуска,правда формат неправильный...должно быть так:
net start AeLookupSvc
sc config AeLookupSvc start= auto
и...текущий статус запущена-ли служба или нет,всё-таки хотелось-бы получить(

Всего записей: 687 | Зарегистр. 08-04-2008 | Отправлено: 00:12 12-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://pastebin.com/raw/rtgAFtuh
Уже запарился с кавычками. Теперь не компилируется вообще: https://i.imgur.com/PRUdRuI.png. Что надо подправить, чтобы запускалось, как надо?..

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 16:23 12-11-2020
iNNOKENTIY21



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

Цитата:
https://pastebin.com/raw/rtgAFtuh
Уже запарился с кавычками. Теперь не компилируется вообще: https://i.imgur.com/PRUdRuI.png. Что надо подправить, чтобы запускалось, как надо?..

Кавычки и надо:
одинарные на двойные "user32.dll"
добавить кавычки if (-not ("WinAPI.Win32ShowWindowAsync" -as [type]))

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 18:49 12-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
делал уже все варианты. Вот что будет, если сделать, как написал: https://imgur.com/a/OHM6lFI

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 20:51 12-11-2020
iNNOKENTIY21



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

Цитата:
делал уже все варианты

кавычек нет, скрин свидетель, ку ©: if (-not ("WinAPI.Win32ShowWindowAsync" -as [type]))
строка: 59 знак: 12

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 21:21 12-11-2020 | Исправлено: iNNOKENTIY21, 21:23 12-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
делал в принципе все варианты. Одним словом, ничего не работает.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 21:28 12-11-2020
westlife



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

Цитата:
делал в принципе все варианты. Одним словом, ничего не работает.

Тут можно только двойные кавычки:

Код:
[DllImport("user32.dll")]

 
А вот тут лучше одинарные:

Код:
if (-not ('WinAPI.Win32ShowWindowAsync' -as [type]))

 
У меня так сработало, но вот такая ошибка появилась:

Код:
Get-Process : Не удалось найти процесс с именем "cleanmgr". Убедитесь, что имя процесса введено правильно, и повторите вызов командлета.
строка:69 знак:24
+         $MainWindowHandle = (Get-Process -Name $Process).MainWindowHa ...
+                              ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (cleanmgr:String) [Get-Process], ProcessCommandException
    + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand
 
Не удается преобразовать аргумент "hWnd", со значением: "", для "ShowWindowAsync" в тип "System.IntPtr": "Не удается преобразовать значение NULL в тип "System
.IntPtr"."
строка:70 знак:3
+         [WinAPI.Win32ShowWindowAsync]::ShowWindowAsync($MainWindowHan ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ( [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

 
Так как это третий запуск я делал, клинмгр почему то закрылся раньше вркемени на 2009 а скрипт это не учитывает.

Всего записей: 1482 | Зарегистр. 12-12-2006 | Отправлено: 21:46 12-11-2020
iNNOKENTIY21



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

Цитата:
делал в принципе все варианты. Одним словом, ничего не работает.

А должно

Код с картинки

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 21:48 12-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
westlife
Если все убрать и оставить только сам p/invoke, то все равно не может скомпилировать!
https://pastebin.com/raw/h1xMXUay

Код:
 
Add-Type : c:\Temp\21kw15sf\21kw15sf.0.cs(8) : Имя "user32" отсутствует в текущем контексте
 

 
Если просто запускать (с любыми кавычками), то все, конечно, работает.
 
iNNOKENTIY21
Не работает именно через запуск из Планировщика.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 22:12 12-11-2020 | Исправлено: farag, 22:12 12-11-2020
iNNOKENTIY21



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

Цитата:
Не работает именно через запуск из Планировщика.

Вот сразу бы сказал  
Я бы сохранил скрипт в файл и его запускал из планировщика.
 
так сработало у меня

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 22:51 12-11-2020 | Исправлено: iNNOKENTIY21, 23:29 12-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
А я ведь уже использовал 3 кавычки выше (какой PS простой, блин!). И почему-то тут не сделал. Вроде, и правда работает! Мерси.
 
Добавлено:
На ночь глядя...
Подгружается, значит, модуль и файл локализации.

Код:
 
Import-Module -Name $PSScriptRoot\test.psd1 -PassThru -Force
Import-LocalizedData -BindingVariable Global:Localization
 

 
https://pastebin.com/raw/aRaMUMMm
 

Код:
 
$($Localization.CleanUpTaskToast)
 

Перестало грузиться как забитый текст (раньше работало). Отображается живьем как $($Localization.CleanUpTaskToast)
Соответственно, в папку ru-RU есть файл test.psd1

Код:
 
ConvertFrom-StringData -StringData @'
CleanUpTaskToast = тест
'@
 

 
Опять из-за кавычек сломалось что-то. Как заставить грузиться текст из CleanUpTaskToast?

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 23:54 12-11-2020 | Исправлено: farag, 01:35 13-11-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2 (пост)
Несмотря на то, что на JS уже есть подобные скрипты, решил тоже попробовать -  
https://jpegshare.net/images/c1/67/c167a26c575a93a40a3125a9a9223699.png


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

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



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

Цитата:
$($Localization.CleanUpTaskToast)


Цитата:
(раньше работало).

В таком виде - это вряд ли...

Цитата:
Опять из-за кавычек сломалось что-то.

и кавычки тут не при чем.

Код:
$a = ConvertFrom-StringData -StringData @'
CleanUpTaskToast = тест
'@
$a.CleanUpTaskToast

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:30 13-11-2020
farag



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

Цитата:
В таком виде - это вряд ли...  

Не просто вряд ли, а работает).
Наверное, я не верно объясняю.
Есть строка локализации, например: https://github.com/farag2/Windows-10-Sophia-Script/blob/9923a5551e30290611c7797ebbb4fa1f2d5559d0/Sophia/de-DE/Sophia.psd1#L118
 
Все работает. Но как только я переделал функцию (https://pastebin.com/raw/aRaMUMMm), перестала грузиться строка.
 
Все потому, что пришлось в
Код:
[xml]$ToastTemplate = @' '@
использовать
Код:
@' '@
вместо  
Код:
@" "@

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 11:17 13-11-2020 | Исправлено: farag, 11:24 13-11-2020
YuS 2



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

Цитата:
Не просто вряд ли, а работает).

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

Цитата:
Все потому, что пришлось
использовать
' '
вместо  
" "
 

А про кавычки уже неоднократно ведь тут писалось (пора, наверное, FAQ тут заводить )

Код:
$переменная = 'попробуем подставить значение'
"$переменная"
'$переменная'

- сравни результаты выполнения...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:48 13-11-2020
farag



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

Цитата:
Так ты показывай полный код, который работает и который не работает, а не куски из него...

Согласен.
 
залил, предварительно удалив все лишнее.
https://dropmefiles.com/Lt4mS
 

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 12:42 13-11-2020 | Исправлено: farag, 12:46 13-11-2020
YuS 2



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

Цитата:
залил, предварительно удалив все лишнее.

Хмм, я так понял, что причина уже нашлась или что-то ещё не работает?
Про кавычки ведь вроде разобрались...
Только я не понял, зачем была замена @" "@ на @' '@ ?

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:19 13-11-2020 | Исправлено: YuS 2, 13:21 13-11-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2
Не, залил, так как не работает вывод текста в сплывающем окошке (тост). Да, пришлось менять кавычки, так как почему-то консоль орет, что есть мочи, на весь текст иначе. Вообще все кавычки, как видно, пришлось менять: даже тройные есть.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 13:23 13-11-2020 | Исправлено: farag, 13:23 13-11-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 226 227 228 229 230

Компьютерный форум 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