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

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

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



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

Можно переползать на Powershell 7
Для оставшихся несовместимых модулей там есть  
 
Import-Module -UseWindowsPowerShell
 
Добавлено:
Для опасающихся нугет.exe теперь есть новая версия PowerShellGet 3.0  
Работает параллельно со старой, но умеет сама общаться с репозиториями без "стороннего" клиента.

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 21:41 03-04-2020 | Исправлено: LevT, 21:46 03-04-2020
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Чего сам не создал, не понятно (С)
http://forum.ru-board.com/topic.cgi?forum=62&topic=31236#1
Будешь лекции читать без полезной информации выключу.

Всего записей: 11112 | Зарегистр. 12-10-2001 | Отправлено: 05:18 04-04-2020
farag



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

Код:
 
$UninstallString = Get-Package -Name "Microsoft OneDrive" | ForEach-Object -Process {$_.Meta.Attributes["UninstallString"]}
# C:\Program Files (x86)\Microsoft OneDrive\19.232.1124.0009_1\OneDriveSetup.exe  /uninstall  /allusers
$Arguments = @"
    "/c" $UninstallString
"@
Start-Process -FilePath cmd.exe -ArgumentList $Arguments
 

Получаю строку для удаления OneDrive. Но как ее скормить cmd, не пойму. Ведь присутствует пробел в пути до .exe. Никакие методы не помогают...

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 22:53 06-04-2020 | Исправлено: farag, 23:01 06-04-2020
westlife



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

Цитата:
Никакие методы не помогают...

Попробуйте так:

Код:
Start-Process -FilePath cmd.exe -ArgumentList "/c ""$UninstallString"""

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 23:44 06-04-2020
farag



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

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 23:46 06-04-2020
westlife



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

Цитата:
Нет...


Код:
[string] $UninstallString = Get-Package -Name "Microsoft OneDrive" | ForEach-Object -Process {$_.Meta.Attributes["UninstallString"]}
if ($UninstallString)
{
    [string[]] $Strings = (($UninstallString -Replace("\s*/",',/')).Trim().Split(',')).foreach({ if ($_ -notlike '*/*') {"""$_"""} else {$_}})
    Start-Process -FilePath cmd.exe -ArgumentList "/c $Strings"
}
 

Без cmd так можно:

Код:
[string] $UninstallString = Get-Package -Name "Microsoft OneDrive" | ForEach-Object -Process {$_.Meta.Attributes["UninstallString"]}
if ($UninstallString)
{
    [string[]] $Strings = ($UninstallString -Replace("\s*/",',/')).Trim().Split(',')
    Start-Process -FilePath $Strings[0] -ArgumentList $Strings[1..10] -Wait
}
 

Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 00:42 07-04-2020 | Исправлено: westlife, 01:05 07-04-2020
LevT



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

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 07:48 07-04-2020 | Исправлено: LevT, 07:49 07-04-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
westlife
Работает! Поклон. Так и думал, что regexp будет использоваться. Эх, слишком муторно выглядит, конечно. Будем дальше прихорашивать...

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 17:56 07-04-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
 
Регэкспы нужны, это стопудово.
Но в минимальных точечных дозах.
 
Как правило - на границе "внешнего" мира, откуда добываются строки для привязки PS объектов.

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 18:23 07-04-2020 | Исправлено: LevT, 18:25 07-04-2020
farag



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

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 21:27 07-04-2020 | Исправлено: farag, 08:14 08-04-2020
Simvol09

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
 
Помогите пожалуйста!
 
Кто может помочь написать код для скачивания картинок по этой ссылке - https://www.deanscards.com/c/3211/2008-09-O-Pee-Chee-Hockey  с помощью PowerShell?  
При переходе на раздел, там есть кнопка "View", при его нажатии там выходят превьюшки, но если нажать на картинку там выходит картинка с большим размером, именно она мне и нужна.
 
Желательно чтобы картинки пронумеровывались в соответствии с номером картинки. Например:
#1 Markus Naslund - это 1
#2 Dan Hinote - это 2  
Главное чтобы они не сохранялись хаотичным набором букв, примерно таких - lfkgfgpo. Я потом их в папке не разберу.
 
Всем откликнувшимся заранее спасибо!

Всего записей: 15 | Зарегистр. 03-12-2019 | Отправлено: 18:52 11-04-2020
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Simvol09
Писать не буду, но помочь можно. Но только кратко:
- Загружаете страницу через Invoke-WebRequest
- Перебираете в цикле теги a с классом "view button". href ведёт на страницу с картинками
- Загружаете эту страницу
- Первый img с классом "bd-image front basic-lightbox-trigger" то, что нужно, например:
атрибут src - превью https://img.deanscards.com/thumb/3529146f.jpg
атрибут data-lightbox-img - картинка https://img.deanscards.com/actual/3529146f.jpg
атрибут data-lightbox-title - название "#1   Markus Naslund "
- Обрабатываете название (удаление лишних пробелов и т.п.) и сохраняете картинку в файл тем же Invoke-WebRequest
 
П.С.
Это больше подходит для темы в прикладном программировании http://forum.ru-board.com/topic.cgi?forum=33&topic=7685&glp

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

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 03:10 12-04-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поправил название и описание той темы.
Убрал лишнее упоминание Microsoft Windows в шапке
 
Упомянул будущую тему об использовании консоли повершел без программирования и сценариев

Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 07:37 12-04-2020 | Исправлено: LevT, 07:53 12-04-2020
YuS 2



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

Цитата:
Кто может помочь написать код для скачивания картинок по этой ссылке - https://www.deanscards.com/c/3211/2008-09-O-Pee-Chee-Hockey  с помощью PowerShell?

Как-то так:

Код:
function get-img {
    param(
        [object[]]$url,
        $name,
        $folder
    )
    $name = $name.trim() -replace '#' -replace ' +','_' -replace '/','_'
    if (!(test-path ($fold = $folder + $name))){md $fold|out-null}
    $url|%{
        $outname ="$fold\"+$name+'_'+([uri]$_).segments[-1]
        iwr $_ -outfile $outname|out-null
    }
}
 
$fld = '.\photo\'
$urisrc = "https://www.deanscards.com/c/3211/2008-09-O-Pee-Chee-Hockey"
#$urisrc = "https://www.deanscards.com/c/3211/2008-09-O-Pee-Chee-Hockey?p=1&ps=1000&t=&c=&gx=10&gm=-10&y=&l="
 
$uri = [uri]$urisrc
$uri_new = new-object system.uribuilder -arg $uri.scheme, $uri.host
$html = iwr $urisrc
$links = $html.links | ? class -eq 'view button'
$links|%{
    $wr = iwr ($uri_new.tostring()+$_.href)
    $wr.parsedhtml.getelementsbytagname('img')|
    ? classname -match 'basic-lightbox-trigger'|%{
        get-img ($_.getattributenode("data-lightbox-img")).nodevalue (
            $_.getattributenode("data-lightbox-title")
        ).nodevalue $fld
    }
}


Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:22 12-04-2020 | Исправлено: YuS 2, 11:31 27-11-2020
Sergey_Demchuk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, как в этом коде прикрутить к имя пользователя, о т которого запущен процесс.
 
:#
(
for /f %%i in ('
"tasklist| findstr /bilc:"OfficeClickToRun.exe""
') do (
 timeout /t 5 /nobreak>nul
  goto:Regdel
 )
)|| goto #
 
Как то объединить с TASKLIST /FI "USERNAME EQ %Username%"

Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 14:06 12-04-2020
farag



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

Код:
 
takeown /F %~dp0rolloutfile.tv13
icacls %~dp0rolloutfile.tv13 /grant:r %username%:F
DEL %~dp0rolloutfile.tv13 /F /Q
 
reg delete HKCU\Software\TeamViewer /F
RMDIR %LOCALAPPDATA%\TeamViewer /S /Q
RMDIR %APPDATA%\TeamViewer /S /Q
 

 
Код запуска

Код:
 
"%~dp0AlterID.exe" /silent
 

 
В общем как бы заставить ожидать закрытия скрипт, чтобы потом все подчистить?

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 15:07 14-04-2020
YuS 2



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

Код:
@echo off
start "" powershell -ex bypass -w hidden .\script.ps1

на простом цикле:
script.ps1

Код:
add-type -assembly system.windows.forms
$process = 'notepad'
$start = {c:\windows\notepad.exe}
 
do {
if (!($p = ps $process -ea 0)){
    &$start
    $p = ps $process
}
$form = new-object windows.forms.form
$form.autosize = $true
$form.autosizemode = [windows.forms.autosizemode]::growandshrink
$form.formborderstyle = [windows.forms.formborderstyle]::fixedtoolwindow
$form.controlbox = $false
$form.sizegripstyle = [windows.forms.sizegripstyle]::hide
$form.text = 'Запустить' + ' ' + $process + '?'
$form.showintaskbar = $false
$form.topmost = $true
$form.startposition = 'CenterScreen'
 
 
$btnyes = new-object windows.forms.button
$btnyes.text = 'Да'
$btnyes.location = new-object system.drawing.point(3,10)
#$btnyes.add_click({click 0})
$btnyes.dialogresult = [windows.forms.dialogresult]::ok
$form.controls.add($btnyes)
 
$btnno = new-object windows.forms.button
$btnno.text = 'Нет'
$btnno.location = new-object system.drawing.point(110,10)
#$btnno.add_click({click 8})
$btnno.dialogresult = [windows.forms.dialogresult]::no
$form.controls.add($btnno)
 
wait-process $p.id
$res = $form.showdialog()
} while ($res -ne 'No')

или так:

Код:
add-type -assembly system.windows.forms
$process = 'notepad'
$start = {c:\windows\notepad.exe}
do {
if (!($p = ps $process -ea 0)){
    &$start
    $p = ps $process
}
$btn = [windows.forms.messageboxbuttons]::yesno
$t1 = [windows.forms.messageboxicon]::question
$t2 = [windows.forms.messageboxdefaultbutton]::button1
$top = [windows.forms.messageboxoptions]::servicenotification # .topmost = $true
 
wait-process $p.id
$res = [windows.forms.messagebox]::show($process, "Запускаем файл?",$btn,$t1,$t2,$top)
} while ($res -ne 'No')

 
По сути, do-while нужен для запуска по кругу, а так достаточно wait-process, ну и может условный блок ещё...
Разберешься ведь как прикрутить к твоей задаче?

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:56 14-04-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2
Ой, забыл упомянуть, что нужен батник. Или неужели он такое не сможет?..

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 20:11 14-04-2020
YuS 2



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

Цитата:
Или неужели он такое не сможет?

Почему не сможет? Сможет... но там нужен бесконечный цикл с паузами, либо goto, тоже с паузами и tasklist с findstr...
В общем-то ничего сложного, но честно говоря, не хочется даже задумываться... может кто-нибудь ещё соорудит...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:06 14-04-2020
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2
Имел в иду, что, конечно, это не будет жуткий код. Ладно, вдруг, что выше, кому-то и понадобится...

Всего записей: 2477 | Зарегистр. 27-07-2009 | Отправлено: 22:15 14-04-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