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

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

Цитата:
Хм, а столбец с номерами строк от удаленных остался. Как его обрезать?

Сперва отфильтровать, затем форматировать/выводить.

Код:
$Error | ? {$_.Exception.Message -notmatch "HRESULT" } | ForEach-Object {
    [PSCustomObject]@{
        "Error"    = $_.Exception.Message
        "Line"    = $_.InvocationInfo.ScriptLineNumber
    }
}

 
 
Добавлено:
farag

Цитата:
Не хочу try/catch: сверху 1200 строк непонятного кода ))

Там в главе try/catch про …trap… и ссыль на книжку.

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 23:38 20-06-2019
farag



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

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 00:00 21-06-2019
iNNOKENTIY21



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

Код:
[uri] $Uri = [uri] 'http://forum.ru-board.com/topic.cgi?forum=62&active=15&topic=30859&start=1680#lt'

Как получить: 'http://forum.ru-board.com/' ?

Код:
$Params = @{
    UserAgent = $UserAgent
    Uri       = $APIUriProject
    Method    = "Head"
}
$Responce = Invoke-WebRequest -Method Head @Params

Можно ли: «-Method Head» переместить в $Params ? Жара. Июнь.

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 18:52 25-06-2019 | Исправлено: iNNOKENTIY21, 20:06 25-06-2019
skipik



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

Код:
@echo off
set MYTIME=%TIME: =0%
set MYTIME=%MYTIME::=.%
set MYTIME=%MYTIME:~0,-5%
echo %MYTIME%
exit

 
Он выводит время в формате "часы.минуты." Мне нужно убрать вторую точку, после минут. Как это сделать? Иначе время 20:40 выводится в формате "20.40." - вторая точка лишняя. Либо тогда уж дополнять секундами, чтоб было "20.40.33"

Всего записей: 4828 | Зарегистр. 07-07-2006 | Отправлено: 20:42 25-06-2019
Smitis



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

Цитата:
Мне нужно убрать вторую точку, после минут

Заменить -5 на -6

Цитата:
Либо тогда уж дополнять секундами

Заменить -5 на -3
 
Или так

Код:
set MYTIME=%TIME%
set MYTIME=%MYTIME:~0,2%.%MYTIME:~3,2%
echo %MYTIME%


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

Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 20:55 25-06-2019 | Исправлено: Smitis, 20:55 25-06-2019
YuS_2



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

Цитата:
Как получить: 'http://forum.ru-board.com/' ?


Код:
$uri.scheme + '://' + $uri.host

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



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

Цитата:
$uri.scheme + '://' + $uri.host

Без добавления строк и без регулярок?

Код:
$uri.AbsoluteUri -replace $uri.AbsolutePath, ""

Может так? так фигня выходит если AbsolutePath: '/'

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



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

Цитата:
без регулярок?

это:

Цитата:

Код:
-replace

и есть регулярки...
Лучшепрактичнее сложить строку из протокола, разделителя и домена... будет надежнее...

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



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

Цитата:
и есть регулярки...  

это точно или ну вы тут держитесь? за кулисами не индексОфф ?

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

Да, похоже на то.
 
 
Добавлено:
Еще вариант

Код:
$uri = [uri] "http://forum.ru-board.com/topic.cgi?forum=62&active=15&topic=30859&start=1680#lt"
[uri]::new($uri, "\")

 
 
Добавлено:
Split-Path $uri -Parent
котелок не вари

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



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

Цитата:
это точно  

точнее некуда...

Цитата:
the replace operator (-replace), which uses regular expressions to change input values;


 

Цитата:
Еще вариант

это больше на хак похоже, чем на верное использование...
 

Цитата:
Split-Path $uri -Parent

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

Код:
'http://forum.ru-board.com/board/s/smilies.html'

 
Добавлено:
iNNOKENTIY21

Цитата:
Как получить: 'http://forum.ru-board.com/' ?

 
а вообще, правильнее было бы так:

Код:
$Uri = [uri] 'http://forum.ru-board.com/topic.cgi?forum=62&active=15&topic=30859&start=1680#lt'
$uri_new = new-object System.UriBuilder -arg $uri.scheme, $uri.host
$uri_new.uri.absoluteuri

 
Добавлено:
и ещё в "записках сумасшедшего" нашлось:

Код:
$uri.getleftpart([uripartial]'authority')


то бишь, смотрим на метод:

Код:
$uri|gm


Цитата:
GetLeftPart                Method     string GetLeftPart(System.UriPartial part)

и проверяем:

Код:
[enum]::getnames([uripartial])

в итоге и получаем, как раз, левую часть...

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Заменять -replace на .replace, Split-шутка
 
Про хак не понял, документировано-нормальное использование конструктора. И он мне нравится больше, пусть uri занимается проверками данных
 
Добавлено:
YuS_2

Цитата:
$uri_new = new-object System.UriBuilder -arg $uri.scheme, $uri.host

System.UriBuilder создаёт uri внутрях. И я бы так записал [UriBuilder]::new($uri.scheme, $uri.host)

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 19:44 26-06-2019
YuS_2



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

Цитата:
Про хак не понял, документировано-нормальное использование конструктора.

потому, что там должно быть:

Цитата:
Uri(Uri, String)    Initializes a new instance of the Uri class based on the specified base URI and relative URI string.

а если заглянем в подробности:

Цитата:
Parameters
baseUri Uri
The base URI.
relativeUri String
The relative URI to add to the base URI.

в итоге, должно быть:

Код:
$uri = [uri]'http://forum.ru-board.com/board/s/smilies.html'
[uri]::new($uri, 'relative')


Код:
AbsolutePath   : /board/s/relative
AbsoluteUri    : http://forum.ru-board.com/board/s/relative
LocalPath      : /board/s/relative
Authority      : forum.ru-board.com
HostNameType   : Dns
IsDefaultPort  : True
IsFile         : False
IsLoopback     : False
PathAndQuery   : /board/s/relative
Segments       : {/, board/, s/, relative}
IsUnc          : False
Host           : forum.ru-board.com
Port           : 80
Query          :
Fragment       :
Scheme         : http
OriginalString : http://forum.ru-board.com/board/s/relative
DnsSafeHost    : forum.ru-board.com
IdnHost        : forum.ru-board.com
IsAbsoluteUri  : True
UserEscaped    : False
UserInfo       :

т.е. "\" вместо relativeUri, это какой-то багоюз...
 
Добавлено:

Цитата:
И я бы так записал [UriBuilder]::new($uri.scheme, $uri.host)

так это то же самое, только записанное в стиле .net
для полной записи, надо будет ещё добавить:

Код:
([UriBuilder]::new($uri.scheme, $uri.host)).uri.absoluteuri


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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Чем "/" не относительный путь ? Segments[0]

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 20:48 26-06-2019
YuS_2



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

Цитата:
Чем "/" не относительный путь ?

тем, что существует спецификация URI, в которой упоминается символ "\", как спецсимвол, которые описываются так:

Цитата:
Special care should be taken when the URI path interpretation process involves the use of a back-end file system or related system functions.  File systems typically assign an operational meaning to special characters, such as the "/", "\", ":", "[", and "]" characters, and to special device names like ".", "..", "...", "aux", "lpt", etc.  In some cases, merely testing for the existence of such a name will cause the operating system to pause or invoke unrelated system calls, leading to significant security concerns regarding denial of service and unintended data transfer.  It would be impossible for this specification to list all such significant characters and device names.  Implementers should research the reserved names and characters for the types of storage device that may be attached to their applications and restrict the use of data obtained from URI components accordingly.
 

В общем, это не документированное применение...

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Это рекомендация об осторожности с локальными путями.
Не запрещено, значит разрешено, тем более мы то за http  
 
Добавлено:
Заодно выяснили, что не плохо бы проверять схему…

Код:
$uri = [uri]'http://forum.ru-board.com/board/s/smilies.html'  
if ($uri.scheme -match 'http?') {([uri]::new($uri, "/")).AbsoluteUri} else {"Not valid scheme: $($uri.scheme). Use: http(s)"}


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



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

Цитата:
Это рекомендация об осторожности с локальными путями.

Возможно и так... тем не менее, не вполне адекватный результат используемого метода в конструкторе (ведь, вместо сложения базового URI с относительным, получаем отрезанный базовый), как бы, намекает, что так быть не должно, а значит, это хак/баг или как угодно, т.е., как не крути - недокументированная возможность...
Где и каким боком это вылезет в дальнейшем, остается только гадать. Лично я предпочитаю такие "фичи" не использовать, тем более, что возможности получить то же самое другими путями, вполне себе, в наличии.

Цитата:
не плохо бы проверять схему

угу, это уже от задачи плясать надо... если требуется - то почему бы и нет?

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Не вижу бага
Это сегмент 0 в данной схеме. схема + хост + сегмент 0.
Для это и сделано: Uri + Path, а "/" и есть часть пути с индексом 0 в схеме http.
 
Добавлено:
В posh 7 нету ни Get-Clipboard, ни Clear-RecycleBin, ни WebView ((iwr $uri).ParsedHtml).
Это временно или раз нет в линухе, то и вы мучайтесь или выпиливают IE ?
Но зато PSReadline, у меня, работает как надо.

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 23:29 26-06-2019 | Исправлено: iNNOKENTIY21, 23:51 26-06-2019
YuS_2



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

Цитата:
Не вижу бага

Ну, как же... я ведь, вроде, пальцем тыкал в него...
ок, по пунктам:
1. The relative URI to add to the base URI. То бишь, не вырезать, не отрезать, а добавить.
2. Допустим: "\" у нас приравнивается к "/", поэтому relativeURI = "/"
3. URI: 'http://forum.ru-board.com/board/s/smilies.html' - в данной схеме, согласно спецификации:

Цитата:
return a string consisting of the reference's path component appended to all but the last segment of the base URI's path (i.e., excluding any characters after the right-most "/" in the base URI path, or excluding the entire base URI path if it does not contain any "/" characters).

, baseURI = 'http://forum.ru-board.com/board/s/'
4. В итоге, должны получить:  baseURI + relativeURI = 'http://forum.ru-board.com/board/s//' или хотя бы так 'http://forum.ru-board.com/board/s/smilies.html/', т.к. с определением base URI есть варианты...
 
- так должно быть по всем описаниям документации...  
Но получаем-то мы совсем не это, а значит, что? Делаем выводы...

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

Код:
$uri = [uri]"http://a/b/c/d;p?q"
[uri]::new($uri, "").absoluteuri
[uri]::new($uri, "..").absoluteuri
[uri]::new($uri, "g;x?y#s").absoluteuri
[uri]::new($uri, "/").absoluteuri

так что, вполне можно пользоваться...

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



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

Код:
$obj1 = [pscustomobject] @{ A = 1; B = 2; C = 3; D = $null }
$obj2 = [pscustomobject] @{ A = 1; B = 2; C = 3; D = $null; E = 5 }
$objs = @($obj1, $obj2)
$objs
$objs.A
$objs.E
$objs | fl *

Как определить, что есть свойство «E», как вывести, только те объекты, где присутствует свойство «E»?

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



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

Цитата:
Как определить, что есть свойство «E»


Код:
$objs|%{$_|ft}

 

Цитата:
как вывести, только те объекты, где присутствует свойство «E»?

элементы объекта или объекты именно?

Код:
$objs|? 'E'

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 20:26 27-06-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 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