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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

cchameleone



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
» Описание Cmd.exe » Command shell overview
» Using batch files » Using batch parameters » Using filters » Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Попов А. Командная строка и сценарии Windows (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
RetroRocket



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

Цитата:
как работать с файлами без расширений

Просто не указываете расширение -
Код:
copy "*." "*.jpg"


----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2685 | Зарегистр. 02-01-2018 | Отправлено: 10:23 13-08-2018
serg3001



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

Код:
copy "C:\Documents and Settings\Иван\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets" "C:\Documents and Settings\Иван\Pictures"  /Y  "*." "*.jpg"
close

что-то не работает пока ничего.

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 10:31 13-08-2018 | Исправлено: serg3001, 10:47 13-08-2018
RetroRocket



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

Код:
copy "C:\Documents and Settings\Иван\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*." "C:\Documents and Settings\Иван\Pictures\*.jpg"  /Y


----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2685 | Зарегистр. 02-01-2018 | Отправлено: 10:49 13-08-2018
serg3001



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

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 10:58 13-08-2018
RetroRocket



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg3001
Я не могу угадать, что у вас не сработало. Проверьте пути, права доступа. Может спецы ещё что посоветуют.

----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2685 | Зарегистр. 02-01-2018 | Отправлено: 11:14 13-08-2018
serg3001



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

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 11:54 13-08-2018 | Исправлено: serg3001, 12:09 13-08-2018
RetroRocket



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

Цитата:
видимо из-за имени на кириллице

Воссоздал у себя ваш путь и всё скопировалось нормально -

Так что кириллица не виновата.  
Попробуйте перед копированием снять атрибуты "скрытый" и "системный" командой attrib.
Код:
attrib -h -s "C:\Documents and Settings\Иван\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*."
 
copy "C:\Documents and Settings\Иван\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*." "C:\Documents and Settings\Иван\Pictures\*.jpg"  /Y


----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2685 | Зарегистр. 02-01-2018 | Отправлено: 12:41 13-08-2018 | Исправлено: RetroRocket, 12:43 13-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg3001
Copy-LockScreenPictures
Скрипт powershell копирует картинки на обои из
Код:
$source = "$env:LOCALAPPDATA\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
в
Код:
$destination = "$env:USERPROFILE\Pictures\LockScreenPictures"
раскидывая ландшафтные и портретные по соответствующим подкаталогам, отбирая картинки разрешением
Код:
$resolution = 2073600 # (1920*1080|1080*1920)

Уже имеющиеся не копирует, проверяя хеши, для скорости кэширует хеши в файл
Код:
$cache = "$env:LOCALAPPDATA\Copy-LockScreenPictures\hashes.cache"

 
Для удобства можно прицепиться в планировщике к задаче по обслуживанию системы, тогда всё автоматом будет пахать, только смотри картинки

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 14:04 13-08-2018 | Исправлено: iNNOKENTIY21, 23:31 06-02-2019
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21 5+
круто, это именно то, что я и хотел. Сейчас попробовал, всё сработало, только вначале PowerShell разрешение требует на выполнение скрипта. Немного изменить под себя и всё готово, мне не нужны, например, портретные снимки и помещать ландшафтные буду в общую папку с изображениями + очень полезная статья
Вот в первый раз запуска скрипта всё хорошо скопировалось, потом удалил папку конечную с обоями и добавил задание в планировщик, но ни в планировщике, ни в отдельности не сработало ничего. Имя компа и пользователя сменил на свои, путь до скрипта тоже. При запуске скрипта создаётся только папка пустая LockScreenPictures

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 14:15 13-08-2018 | Исправлено: serg3001, 14:52 13-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кеш тоже почистил? $cache = "$env:LOCALAPPDATA\Copy-LockScreenPictures\hashes.cache" или он же %LOCALAPPDATA%\Copy-LockScreenPictures\ файл: hashes.cache

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 16:02 13-08-2018
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
После удаления файла кеша и запуска скрипта всё хорошо работает. Осталось только, чтобы в планировщике работало как надо. Добавление задания в библиотеку планировщика заданий прошло успешно через команду

Код:
schtasks.exe /create /tn "Copy Images" /xml "C:\Users\Имя\Documents\1.xml"

но вот когда выбираю в списке задание это и нажимаю выполнить, то ничего не копируется. В столбце "Результат последнего запуска" написано: (0x1)
Там путь до скрипта в xml файле без кавычек указывать? Правильно?

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 18:24 13-08-2018 | Исправлено: serg3001, 10:15 28-08-2018
iNNOKENTIY21



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

Цитата:
Там путь до скрипта в xml файле без кавычек указывать?

У меня без, но и без пробелов. Если есть пробелы, то возможно нужны кавычки, точно не знаю.

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

Нечего копировать? Подсуньте для проверки в \Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets новый файл. нужного разрешения, нужной ориентации и затем запускайте задачу.

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 19:39 13-08-2018
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
да, пробелы требуют кавычек, сейчас протестирую с кавычками.
Хотя нет, у меня в пути нет пробелов. Что-то в другом. Может дело в том, что я сижу не под админом?
Попробую создать задачу в планировщике без команды schtasks.exe /create /tn "Copy Images" /xml "C:\Users\Сергей\Documents\1.xml" а вручную, посмотрю как поведёт себя в этом случае.
Вообщем, пока с планировщиком никак не справлюсь, может там требуется добавить аргумент для запуска PowerShell для
Цитата:
Изменение политики выполнения
Политика выполнения защищает компьютер от ненадежных сценариев. Изменение политики выполнения может поставить под
угрозу безопасность системы, как описано в разделе справки, вызываемом командой about_Execution_Policies и
расположенном по адресу https:/go.microsoft.com/fwlink/?LinkID=135170 . Вы хотите изменить политику выполнения?
[Y] Да - Y  [A] Да для всех - A  [N] Нет - N  [L] Нет для всех - L  [S] Приостановить - S  Справка
(значением по умолчанию является "N"):

это у меня при запуске скрипта выдаётся такое, вот подумал, может в xml файл требуется включить в строку  

Код:
<Arguments>-WindowStyle Hidden -NoLogo -NoProfile -NonInteractive -File C:\Users\Сергей\Documents\Copy-LockScreenPictures.ps1</Arguments>  

ключ для запуска с политикой выполнения? Правильно будет поставить -Y в аргументы?

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 19:41 13-08-2018 | Исправлено: serg3001, 20:55 13-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg3001
В консоли powershell: Get-ExecutionPolicy покажет текущий уровень разрешний
В консоли powershell от админа: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned установит политику. Разрешит исполнение локальных скриптов.

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 21:11 13-08-2018 | Исправлено: iNNOKENTIY21, 21:35 13-08-2018
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Get-ExecutionPolicy показал Restricted
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned это на постоянно включит или на один раз?
установил Y и уже после этого Get-ExecutionPolicy показал RemoteSigned
Сейчас ещё раз попробую под простым юзером протестировать, добавив новые картинки в папку исходную.

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 09:09 14-08-2018 | Исправлено: serg3001, 10:33 14-08-2018
YuS_2



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

Цитата:
на постоянно включит или на один раз?

если требуется только для однократного запуска, без изменения политики, то в строку аргументов можно добавить:

Код:
-ex bypass

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:10 14-08-2018
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вроде всё получилось теперь, задача в планировщике выполнилась и под юзером, и под админом.
Видимо привилегии которые PowerShell требовал при запуске, мешали выполнению задачи.
Теперь ещё один момент, чтобы загружать только лишь обои с разрешением 1920*1080 в папку Saved Pictures в файле скрипта исправить нужно следующие параметры:
удалить строки:

Код:
 
elseif($picture.Height -gt $picture.Width)  {"Portrait"}
elseif($picture.Height -eq $picture.Width)  {"Square"}
и
if ($filesToCopy.Orientation.Contains('Portrait')) {Make-Directory -Path ("{0}\{1}" -f $destination, 'Portrait')}
if ($filesToCopy.Orientation.Contains('Square'))    {Make-Directory -Path ("{0}\{1}" -f $destination, 'Square')}

папку назначения изменить на:

Код:
$destination = "$env:USERPROFILE\Pictures\Saved Pictures"

в конечной папке проводится проверка на дублирование файлов? Например, два файла с разными именами, но одинаковые по изображению, будет скопирован один или оба?

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 11:58 14-08-2018 | Исправлено: serg3001, 11:59 14-08-2018
serg3001



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ещё один вопрос, подскажите, пожалуйста, какой аргумент производит запуск окна Outlook в скрытом режиме?

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 14:20 14-08-2018
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg3001
По поводу привилегий, я не понял, скрипт не просит привилегий.
 
 
Ничего удалять не надо.
Надо добавить условие отбора, только ландшафт
Код:
$files = Get-ChildItem -File -Path $source | Get-Picture | Where-Object -Property Resolution -GE $resolution | Where-Object -Property Orientation -EQ "Landscape"


Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 14:38 14-08-2018
serg3001



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

Цитата:
По поводу привилегий, я не понял, скрипт не просит привилегий.

Неправильно выразился, не привилегий, а точнее, разрешение на выполнение скрипта PowerShell запрашивал при запуске.
 
Добавил в строку указанный вами код. Спасибо.
Там у меня ещё ситуация такая, что в папке Pictures есть папка Saved Pictures, в которой хранятся прошлые скопированные обои экрана блокировки, часть имен файлов которых было переименовано на более удобные имена. Если в скрипте изменить конечную папку на Saved Pictures, то будут ли потом при копировании изображения проверятся на дубли?
Т.е. сейчас два варианта:
1. Или сменить папку назначения, чтобы из папки LockScreenPictures-Landscape вручную не копировать файлы в Saved Pictures, а сразу туда их помещать.  
2. Или же, из папки Saved Pictures перенести всё в LockScreenPictures-Landscape и хранить все файлы там.

Всего записей: 3815 | Зарегистр. 16-10-2010 | Отправлено: 15:01 14-08-2018 | Исправлено: serg3001, 16:44 14-08-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 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru