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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
По моему представлению, предпочтительная буква хранится то ли в самом томе, то ли в реестре (привязанная к id тома)
При монтировании буква меняется только в том случае, если нужная буква занята  

Буква может менятьсятчк
Так вот и не надо размонтировать, тем самым пофиг на домыслы, что там и как.
Букву же не ради показухи получаем, а для работы с примонтированным диском.
 

Цитата:
Ктоме того, не у всех смонтированных томов есть буквы

Монтируем мы сами.
А если уже смонтирован и пытаемся получить букву, она будет пуста.
 
И для этого, в функции была проверка

Код:
if (-not (Test-Path -Path ($DiskImageVolume.DriveLetter + ':\'))) {  
            throw "Не удалось смонтировать: $DiskImageFile"  
        }

В классе потерялась. И хз нужна ли. А может смонтировать образ, еще раз, но уже с буквой.
 

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 11:57 20-01-2020
LevT



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

Цитата:
Буква может менятьсятчк  

 
НИКОГДА этого не бывает "просто так"
Только по причине занятости
 
И посмотри дописку с кодом в конце прошлой странцы.

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 12:06 20-01-2020 | Исправлено: LevT, 12:07 20-01-2020
mihmann

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey
Цитата:
То есть из-за того, что вам лень минуту подождать пока mp3tag* прочитает ваши "тысячи файлов" (которые вы скорее всего один раз послушаете за всю жизнь), кто-то должен корячиться и тратить свое время, создавая вам готовый батник? Тем более речь идет об одноразовой операции. Странная логика, если не называть вещи своими именами.  

 
 
ответил в личные сообщения

Всего записей: 63 | Зарегистр. 21-05-2017 | Отправлено: 12:07 20-01-2020 | Исправлено: mihmann, 12:36 20-01-2020
LevT



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

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 12:48 20-01-2020
iNNOKENTIY21



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

Цитата:
НИКОГДА этого не бывает "просто так"
Только по причине занятости  

Я не говорил, что "просто так". Какая разница по какой причине? Меняется итчк
 

Цитата:
И посмотри дописку с кодом в конце прошлой странцы.

Посмотри пост выше, последнюю строку.
Да я не против: поправь как считаешь нужным.  
 
Новый метод типа ValidateDriveLetter.
А в метод GetDriveLetter() его вызов.
А там обрабатывай как хочется, с генерацией ошибки, монтирование с буквой, метод Mount() уже есть.

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



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

Цитата:
Я не говорил, что "просто так". Какая разница по какой причине?  

 
Дык важны именно причины.
(Раз уж мы работаем с побочными эффектами)
 
Хотелось бы узнать точно, а не приблизительно, как назначаются буквы.
Это кстати можно уточнить с помощью твоего модуля и моей тестовой фикстуры
 
 
 
Добавлено:
 
Не понял, какая актуальная ссылка на твой класс
Вообще, для подобной деятельности скорее уже нужна репа на гитхабе...
 

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 12:55 20-01-2020 | Исправлено: LevT, 12:58 20-01-2020
iNNOKENTIY21



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

На класс, только одна. И тот же класс, но в скриптовой обёртке.
 
А вот и слегка изменённый вариант класса в скриптовой обёртке, тоже, слегка изменённой Подробнее...
 
+ if (-not ($this.DriveLetter)) { throw "$($this.Path) - Нет буквы диска!" }
+ [string] GetDrivePath() { return $this.DriveLetter + ":\" }

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 15:33 20-01-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает, как победить в VSCode терминал повершел?
Не работает чаще, чем работает стрелка вверх (возврат к истории команд)
Заодно не всегда работает автодополнение
 
Раздражает неимоверно  
приходится переключаться.. а то бы я из неё не вылезал

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 13:50 21-01-2020 | Исправлено: LevT, 13:52 21-01-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Кто знает, как победить в VSCode терминал повершел?

Чисто терминал или PowerShell Integrated Console? В последнем psreadline не работает. Только в предварительной версии аддона, но она глючная, отваливается часто.
А в просто терминале, всё норм. Но им не пользуюсь. ибо дебаг в интегрированной. Я в редакторе код набираю и жму F5 для дебага, Ctrl+F5 без дебага, F8 только выделенный код на запуск.
А чисто терминал, отдельно, новомодный Windows Terminal.
Я psreadline обновлял в ручную для системы (C:\Program Files\WindowsPowerShell\Modules\PSReadline), в powershell core 7 свой psreadline, оттуда и копировал
Ничего вроде особо не настраивал.
весь файл настроек с аддонами

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 14:47 21-01-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
А стрелка вверх это разве PSReadline?
По-моему, она отродясь работала и в PS консоли, и в ISE (задолго до появления и PSReadline, и VSCode)

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 16:33 21-01-2020
iNNOKENTIY21



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

Цитата:
А стрелка вверх это разве PSReadline?

В рамках сеанса, нет. Между сеансами, PSReadline.
У себя не наблюдаю проблем с историей в сеансе.

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 16:44 21-01-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Может, у тебя и "Toggle line comment" по Ctrl-/ работает?

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 19:43 21-01-2020
iNNOKENTIY21



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

Цитата:
Может, у тебя и "Toggle line comment" по Ctrl-/ работает?  

Работает
 


 
Классы, классы… Скрипты!
 
Get-DiskImageVolume2.ps1

Код:
param($DiskImageFile = "U:\Test.VHDx")
$DiskImage   = Get-DiskImage -ImagePath $DiskImageFile
$StorageType = [int] $DiskImage.StorageType
$ISOGet      = { $DiskImage | Get-Volume }
$ISOMount    = { Mount-DiskImage -ImagePath $DiskImageFile | Get-Volume }
$VHDGet      = { $DiskImage | Get-Disk | Get-Partition | Get-Volume }
$VHDMount    = { Mount-DiskImage -ImagePath $DiskImageFile | Get-Disk | Get-Partition | Get-Volume }
$Get         = @{ 1 = $ISOGet; 2 = $VHDGet; 3 = $VHDGet }
$Mount       = @{ 1 = $ISOMount; 2 = $VHDMount; 3 = $VHDMount }
if (-not ($DiskImage.Attached)) { & $Mount.$StorageType } else { & $Get.$StorageType }

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 22:28 21-01-2020
LevT



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

Цитата:
Классы, классы… Скрипты!

 
Не любые скрипты, а "идиоматические" (родные для повершел)
С замыканиями-скриптблоками
 
 
Добавлено:
 
Get-DiskImageVolume2.Tests.ps1
 

Код:

#Requires -Version 5.1
#Requires -Modules Hyper-V
#Requires -Modules Pester
# Pester достаточно старой версии из комплекта винды
# Hyper-V  появляется после & {Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-Management-PowerShell -Online}
 
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
# $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
# . "$here\$sut"
 
 
Describe "Работа скрипта Get-DiskImageVolume2" {
    It "скрипт не должен выдавать null" {
 
        $FileName = 'test.vhdx'
 
        # создаём тестовый файл образа в папке скрипта
        $DiskImageFile = Join-Path $here $FileName
        if (-not ($DiskImageFile | Test-Path)) {
            $DiskImageFile | New-VHD -SizeBytes 33GB -Dynamic   #
        }
        $result = & (Join-Path $here Get-DiskImageVolume2.ps1) -DiskImageFile $DiskImageFile
 
        $result | Should Not BeNullOrEmpty
    }
}
 

 
 
Добавлено:
iNNOKENTIY21
 
Можно в таком виде описать ожидания от работы скрипта и их проверить

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 23:11 21-01-2020 | Исправлено: LevT, 00:51 22-01-2020
LevT



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

Цитата:
У себя не наблюдаю проблем с историей в сеансе.

 
Выяснил, что у меня тоже работает в сеансе, по крайней мере так бывает.
А нужно, чтобы работало в режиме дебага - так у меня не бывает, к сожалению.
 

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 08:13 22-01-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Может там, сведущий кто есть -> Visual Studio Code | VS Code | VSCode - [4] :: Программы :: Компьютерный форум Ru.Board

Всего записей: 3640 | Зарегистр. 16-08-2012 | Отправлено: 09:41 22-01-2020
icijafi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Скажите, пожалуйста, как сделать один bat-файл, который при запуске будет:  
 
1) включать адаптер, если он выключен
2) выключать адаптер, если он включен
 
Команды выглядят таким образом:
 
netsh interface set interface name="Ethernet" enable - включить адаптер
netsh interface set interface name="Ethernet" disable - выключить адаптер

Всего записей: 30 | Зарегистр. 20-12-2017 | Отправлено: 10:32 22-01-2020
Death_INN

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

Код:
ping ya.ru |>nul find /i "TTL=" && echo инет есть

Всего записей: 3548 | Зарегистр. 24-10-2002 | Отправлено: 12:42 22-01-2020
LevT



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

Всего записей: 17727 | Зарегистр. 14-10-2001 | Отправлено: 12:42 22-01-2020
YuS_2



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

Цитата:
как сделать один bat-файл, который при запуске будет:
1) включать адаптер, если он выключен  
2) выключать адаптер, если он включен  

так:

Код:
@echo off
set deviceid=9
for /f "delims=" %%a in ('
    wmic path win32_networkadapter where deviceid^=%deviceid% get netenabled /value^|find /i "netenabled"
') do set %%a
if "%NetEnabled%"=="FALSE" (wmic path win32_networkadapter where deviceid=%deviceid% call enable) else (
    wmic path win32_networkadapter where deviceid=%deviceid% call disable
)
pause&exit

 
посмотреть deviceid необходимого адаптера:

Код:
wmic path win32_networkadapter where physicaladapter=true get netenabled,deviceid,name /value

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 12:44 22-01-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