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

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

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

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
  • Если используете "белый список" в брандмауэре Windows, то для работы сценариев в сети необходимо создать 2 исходящих правила для svchost.exe и PowerShell.exe.
  • В отличие от батников, кодировка скриптов на PowerShell должна быть 1251 (ANSI). Начиная с версии PowerShell Core 6.0, кодировка по умолчанию UTF8NoBOM.
Расширение возможностей
Функции
Write-Color
Провайдеры
Готовые скрипты
Ошибки и предупреждения в журнале событий по электронной почте (в4.0)
Преобразование алиасов в скриптах к полным командам.
Получение детализированной информации из файлов.
 
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?

Cmd
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 7282 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: Smitis, 15:33 21-08-2018
Inoz2000



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




Здесь только по теме, остальное в ПМ, либо открываем тему в тестировании и там выясняем. Два раза не повторяю.

Всего записей: 2416 | Зарегистр. 23-04-2009 | Отправлено: 14:00 17-02-2018 | Исправлено: KLASS, 14:03 17-02-2018
KapralBel



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

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:03 17-02-2018 | Исправлено: KLASS, 14:19 17-02-2018
LevT



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





Началось... лишь бы воду мутить, кури неделю, остынешь

Всего записей: 10739 | Зарегистр. 14-10-2001 | Отправлено: 14:39 17-02-2018 | Исправлено: KLASS, 16:24 17-02-2018
YuS_2



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

Цитата:
Категорически против смешивания  

 
 17-02-2018

Цитата:
Здесь только по теме, остальное в ПМ, либо открываем тему в тестировании и там выясняем.


Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 14:43 17-02-2018
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Какие-то сценарии псевдосценаристы придумали... Значит надо все подряд в кучу мешать: цмд, пш, вбс/жс... хрен знает чо еще в голову ударит...




Видать тоже не понял, отдохни... может дойдет

Всего записей: 7082 | Зарегистр. 11-03-2002 | Отправлено: 16:36 17-02-2018 | Исправлено: KLASS, 16:41 17-02-2018
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
эта программа делит не на куски, а на контакты. потом придется 350 контактов по одному переносить на самсунг. насколько я ее помню она криво работает к тому же и требует фреймворка, что для текстового файла перебор.
хотя разделить потом файлы на кучки и склеить батником можно. я так делал, но в итоге просто разделить на десять кусков проще. создаешь 10 пустых файлов. первый делишь пополам, суешь в 1 и 5, потом еще раз пополам и еще раз пополам. потом осталось всего то подравнять размеры, чтоб не переборщить.
 
Добавлено:
они как специально сговорились сони с самсунгом. все предусмотрели чтоб нагадить




Тему попутал?

Всего записей: 2247 | Зарегистр. 29-03-2016 | Отправлено: 17:14 17-02-2018 | Исправлено: KLASS, 17:23 17-02-2018
YuS_2



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

Цитата:
эта программа делит не на куски

Какая программа? Про программы - это в другой топик.
Вот сценарий:
run.bat

Код:
<# ::
@echo off
powershell -ex bypass -c "&{[scriptblock]::create((gc '%~f0') -join [char]10).invoke()}"
pause&exit /b
#>
$enc=[text.encoding]::getencoding("utf-8")
$tmp = new-object io.streamreader("contacts.vcf", $enc)
$cnt = 1
$tcnt = 0
$splt = 10 #количество контактов в одном файле
if($splt -le 0){
    write-host 'Finished work, invalid parameter'
    sleep -s 2
    exit
}
 
while(($str = $tmp.readline()) -ne $null){
    ac $cnt".vcf" -val $str -enc utf8
    if($str -eq "END:VCARD"){$tcnt++}
    if ($tcnt -eq $splt){
        $cnt++
        $tcnt = 0
    }
}
$tmp.close()

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 17:51 17-02-2018 | Исправлено: YuS_2, 18:10 17-02-2018
bomzz

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




Мля, не ставьте, кто вас заставит то?

Всего записей: 2247 | Зарегистр. 29-03-2016 | Отправлено: 18:11 17-02-2018 | Исправлено: KLASS, 18:13 17-02-2018
YuS_2



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

Цитата:
powershell ставить чтоб текстовый файл на куски поделить?

powershell предустановлен, начиная с win7.
А вообще, да: нет желания - кто заставит-то?

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 18:18 17-02-2018
Smitis

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Что за ерунда с командами ассоциации в шапке темы? Перекочевавшая, кстати, из предыдущей. Откуда взялись все эти "sysWOW64" и "Program Files (86)" для 32-х разрядной оси? Ассоциации что для Windows x32, что для x64 не будут отличаться, от слова совсем. Ну разве только кто-то захочет использовать x32 PS на Win x64 (нафига?).
Поправьте, или, если нет возражений, могу поправить сам.

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





Шапку обсуждаем здесь

Всего записей: 1343 | Зарегистр. 09-02-2003 | Отправлено: 14:13 18-02-2018 | Исправлено: KLASS, 14:40 18-02-2018
Smitis

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я смотрю, скрипты в PowerShell 6 не связаны с какими-либо расширениями файлов (предыдущие версии выполняли только файлы с расширением ps1). С одной стороны это плохо - непонятно, с чем ассоциировать (особенно если нужно оставить ps1 за старым PS для совместимости). Даже инсталлятор ни с чем не ассоциирует.
С другой стороны, упрощается создание гибридных cmd-ps файлов.

Код:
<# :
@pwsh -f "%~f0" %*
@goto:eof
#>
$PSVersionTable
""
"Arguments:"
$args

В этом плане то, что теперь PS файлы без BOM воспринимает как UTF-8, оказалась даже полезной фичей (cmd BOM не воспринимает).


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

Всего записей: 1343 | Зарегистр. 09-02-2003 | Отправлено: 00:12 21-02-2018
YuS_2



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

Цитата:
предыдущие версии выполняли только файлы с расширением ps1

Они и в предыдущих версиях, вроде, не выполнялись напрямую, хоть ассоциации и контроль расширения присутствовали...

Цитата:
С другой стороны, упрощается создание гибридных cmd-ps файлов.

Тоже думаю, что это скорее плюс, чем минус.

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 07:42 21-02-2018
Smitis

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

Цитата:
Они и в предыдущих версиях, вроде, не выполнялись напрямую

Это легко проверяется - не выполняет, если расширение не ps1.
Цитата:
Processing -File '1.ps2' failed because the file does not have a '.ps1' extension. Specify a valid Windows PowerShell script file name, and then try again.
Поэтому и приходится извращаться типа &{[scriptblock]::create((gc '%~f0') -join [char]10).invoke()} и ещё думать, как передать в скрипт параметры.


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

Всего записей: 1343 | Зарегистр. 09-02-2003 | Отправлено: 10:24 21-02-2018 | Исправлено: Smitis, 10:24 21-02-2018
YuS_2



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

Цитата:
не выполняет, если расширение не ps1.

Я не о том. Скрипт необходимо принудительно запускать через powershell, в отличие от vbs, bat, js...
А по контролю расширения скрипта, я так и написал, что оно было.
 

Цитата:
Поэтому и приходится извращаться

Ну, это уже на любителя, для особо пытливых умов... а так, ведь вполне достаточно:

Код:
powershell .\script.ps1

и весь код скрипта поместить в этот файл, script.ps1.
ну, или так:

Код:
@echo off
if "%~1"=="" (set x=test) else (set "x=%~1")
powershell -c "&{$psversiontable; echo =====; echo %x%}"
pause

т.е. не сильно объемный скрипт можно и в батник уместить...

----------
scio me nihil scire

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 10:52 21-02-2018 | Исправлено: YuS_2, 11:01 21-02-2018
Smitis

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

Цитата:
Скрипт необходимо принудительно запускать через powershell, в отличие от vbs, bat, js...

Меня всегда удивляло странное отношение MS к PowerShell. С одной стороны, во всю продвигают его. С другой стороны искусственно ограничивают его использование - не подписанные скрипты не запускать, по двойному клику не запускать... А сейчас, такое впечатление, вообще пустили на самотёк

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

Всего записей: 1343 | Зарегистр. 09-02-2003 | Отправлено: 13:18 21-02-2018
YuS_2



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

Цитата:
С другой стороны искусственно ограничивают его использование - не подписанные скрипты не запускать, по двойному клику не запускать...

Стремление к безопасности... хоть какой-то.

Цитата:
А сейчас, такое впечатление, вообще пустили на самотёк

Дык, опенсорсже...  не совсем, наверное, но самостоятельность/самотек присутствует.

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 13:41 21-02-2018
Smitis

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

Цитата:
Стремление к безопасности... хоть какой-то.

Ага.
- Вот Вам новый скриптовый язык предназначенный для администрирования. Он заменит все предыдущие небезопасные cmd, wsh и прочие утилиты. Только им пользоваться нельзя, потому что он тоже не безопасный.
- А предыдущими небезопасными cmd, wsh и прочими теперь тоже нельзя пользоваться?
- Нет, пользуйтесь сколько хотите.
Эта "безопасность" примерно как спрятали от ребёнка зажигалку, но оставили коробок со спичками.


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

Всего записей: 1343 | Зарегистр. 09-02-2003 | Отправлено: 20:09 21-02-2018
YuS_2



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

Цитата:
Эта "безопасность" примерно как спрятали от ребёнка зажигалку, но оставили коробок со спичками.

Буржуины. Что с них взять?

Всего записей: 2019 | Зарегистр. 03-02-2009 | Отправлено: 12:27 22-02-2018
farag



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Раз есть тема, можно и спросить.

Код:
 
IF (!(Test-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches))
{
    New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches -Force
}
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup" -Name StateFlags1337 -Value 2 -Force
Start-Process "$env:SystemRoot\System32\cleanmgr.exe" "/sagerun:1337"
$WindowCode = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'
$AsyncWindow = Add-Type -MemberDefinition $WindowCode -Name Win32ShowWindowAsync -namespace Win32Functions -PassThru
$hwnd0 = (Get-Process -Name cleanmgr)[0].MainWindowHandle
$AsyncWindow::ShowWindowAsync($hwnd0, 0)
 

Надо запустить очистку диска в скрытом режиме, но не работает. Работает почему-то на Блокноте.

Всего записей: 503 | Зарегистр. 27-07-2009 | Отправлено: 12:39 26-02-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Сценарии Windows

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru