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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
fl | ft как бы умею как бы получать true/false. типа if($objs.contains('E')) {$true} else {$false}
 
$objs|? 'E' - для объекта без свойства 'E' выдает ошибку. Это и хотелось бы избежать. -ErrorAction SilentlyContinue
Получше/быстрее бы вариант

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 20:53 27-06-2019 | Исправлено: iNNOKENTIY21, 20:56 27-06-2019
YuS_2



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

Цитата:
как бы получать true/false. типа if($objs.contains('E')) {$true} else {$false}

ну, а чем плохо:

Код:
if($obj1|? 'E'){'yes'}else{'no'}
if($objs|? 'E'){'yes'}else{'no'}
 

?

Цитата:
$objs|? 'E' - для объекта без свойства 'E' выдает ошибку.

какую ошибку?
это же where-object, нет свойства, нет и выборки, ошибок никаких не должно быть...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:27 27-06-2019 | Исправлено: YuS_2, 21:28 27-06-2019
iNNOKENTIY21



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

Цитата:
какую ошибку?

такую
 
Добавлено:

Цитата:
if($objs|? 'E'){'yes'}else{'no'}

та же ошибка

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 21:49 27-06-2019
YuS_2



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

Цитата:
такую  




 
ЗЫ А вообще, в хелпе указано так:

Код:
Get-Command | where OutputType

не думаю, что это имеет такое значение, но попробовать надо так:

Код:
$obj1|? E

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:23 27-06-2019 | Исправлено: YuS_2, 22:35 27-06-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Это я знаю почему: Set-StrictMode
Вопрос всё равно остаётся, как проверить со строгим режимом, есть свойство или нет?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 22:36 27-06-2019
YuS_2



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

Цитата:
как проверить со строгим режимом, есть свойство или нет?

завернуть в try{}catch{}
а как иначе-то? Нет свойства - любая проверка выдаст ошибку же... со строгим режимом.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:45 27-06-2019
PhoenixUA



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

Цитата:
как проверить со строгим режимом, есть свойство или нет?


Код:
 
foreach ($obj in $objs) {  
    $props = Get-Member -InputObject $obj -MemberType NoteProperty | select -expand name
    if ($props -contains 'e') { $obj }
}
 

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 22:53 27-06-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Не строгий режим как то обходит
 
try{}catch{} кажется хуже, чем SilentlyContinue.
может еще проверять строгий/не строгий режим, как то…
 
Добавлено:
PhoenixUA
Вот. Вариант. Спасибо.
 
Я уж думал …и осталось их двое © «10 негритят».
Но тут ожил спойлер и всех порешиал
 
Добавлено:
Немного изменил запись, в одну строчку для отбора объектов:

Код:
$objs | ? {((Get-Member -InputObject $_ -MemberType NoteProperty).Name) -eq 'E'}

 
$objs | ? {((Get-Member -InputObject $_).Name) -eq $MemberName}

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 22:54 27-06-2019
iNNOKENTIY21



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

Код:
class EventSample {
    static [void] GetProcess() {
        $Process = Get-Process | sort WS -Descending | select -First 10
        $null = New-Event `
            -SourceIdentifier "EventSample" `
            -Sender EventSample `
            -EventArguments "Список процессов" `
            -MessageData $Process
    }
}
 
$Action = {
    Write-Host $event.Sender
    Write-Host $event.TimeGenerated
    Write-Host $event.SourceArgs
    $event.MessageData | Out-Host
    #$var = $event.MessageData
}
 
$null = Register-EngineEvent `
    -SourceIdentifier "EventSample" `
    -Action $Action
 
[EventSample]::GetProcess()
 
#$var
 
Get-EventSubscriber | Unregister-Event

Выделенное (жирным, синим) хотелось бы получить в виде переменой (закомментировано, зеленым), как её оттуда достать?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 21:58 29-06-2019
YuS_2



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

Цитата:
как её оттуда достать?

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

Код:
...
    $global:var = $event.MessageData
...
sleep -m 100
$var
...


Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:45 30-06-2019
iNNOKENTIY21



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

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

Глобалку делал, а вот …для очухивания… не догадался.
Вот это хак. Хоть 0 мс ставь, хоть просто Write-Host (работает)

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 14:40 30-06-2019
Tiikker



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, хелп! Если кто *.cmd знает, перепишите скрипт из Visual Basic, плизз, чтобы гемора поменьше было.. Не у всех есть в системе VB.. Скрипт для установки русского интерфейса в Adobe Audition.
 
скрипт:
 
Const ForReading = 1
Const ForWriting = 2
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("AMT\application.xml", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strText = Replace(strText, ">en_US<", ">es_ES<")
strText = Replace(strText, ">de_DE<", ">es_ES<")
strText = Replace(strText, ">fr_FR<", ">es_ES<")
strText = Replace(strText, ">it_IT<", ">es_ES<")
strText = Replace(strText, ">ja_JP<", ">es_ES<")
strText = Replace(strText, ">ko_KR<", ">es_ES<")
strText = Replace(strText, ">pt_BR<", ">es_ES<")
strText = Replace(strText, ">zh_CN<", ">es_ES<")
 
Set objFile = objFSO.OpenTextFile("AMT\application.xml", ForWriting)
objFile.WriteLine strText
objFile.Close
 
MsgBox "Русский"

Всего записей: 956 | Зарегистр. 05-06-2018 | Отправлено: 14:43 05-07-2019
Smitis



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

Цитата:
Не у всех есть в системе VB

Это как? Windows 95?

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 19:10 05-07-2019
2as

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

Цитата:
Не у всех есть в системе VB..

А офис от MS? )))

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 03:43 06-07-2019
Tiikker



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis, не знаю, у меня попросили помочь установить русик мой для Adobe Audition, там 2 скрипта переключения, у чела они не работают, ибо нет у него в системе VB. Пришлось ему показать на пальцах, чо делать ). А я в cmd не силён, вот и прошу скрипт переделать в cmd.. )
 
http://forum.ru-board.com/topic.cgi?forum=5&topic=2814&start=1520#lt

Всего записей: 956 | Зарегистр. 05-06-2018 | Отправлено: 10:15 06-07-2019 | Исправлено: Tiikker, 10:18 06-07-2019
Smitis



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

Цитата:
А офис от MS?

Используя телепатический метод предположил, что речь не о VB, а о VBS. И да, судя по обсуждению в теме Adobe Audition, так оно и есть.
 
Tiikker

Цитата:
ибо нет у него в системе VB

VBS в системе у него есть, иначе не было бы сообщения об ошибке в скрипте в строке 5. Это ошибка открытия файла AMT\application.xml. Вы используете относительный путь, это может не сработать (и не сработало). Используйте полный путь. Я не знаю, где лежит этот xml файл. Путь к скрипту можно получить scriptpath=Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\")) (с обратным слешем в конце).
Например, если в той же папке, где и скрипт
appxmlfile=Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\")) & "application.xml"
 
А для перевода в cmd - обработка xml слишком сложна для cmd и просто не охота возиться борясь с его ограничениями.

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 13:52 06-07-2019 | Исправлено: Smitis, 13:59 06-07-2019
YuS_2



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

Цитата:
>en_US<

С такими спецсимволами в cmd лучше не баловаться, ибо служебные...
на powershell:

Код:
#requires -v 3.0
$file = 'x:\здесь_абсолютный_путь_к_каталогу_с_файлом\AMT\application.xml'
$a = (gc $file -raw -enc utf8) -replace '>(en_US|de_DE|fr_FR|it_IT|ja_JP|ko_KR|pt_BR|zh_CN)<','>es_ES<'
$a|out-file $file -enc utf8

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно через cmatch определить есть ли в папке файлы с названием, у которых хотя бы одно слово в названии НЕ написано с большой буквы? То есть в конечном счете все файлы должны иметь вид "Ааа Bbb Ccc.txt".

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 15:50 08-07-2019
YuS_2



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

Цитата:
есть ли в папке файлы с названием, у которых хотя бы одно слово в названии НЕ написано с большой буквы?


Код:
dir d:\ПАПКА -file|? basename -cmatch '\b\p{Ll}\w*'

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



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 19:31 08-07-2019 | Исправлено: farag, 19:39 08-07-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