В этой теме публикуем полезные по вашему мнению скрипты, которые вы\коллеги\знакомые или Ваша организация используют для автоматизации выполнения любых задач. Правила постинга в данном разделе: Спойлер - Запрещено любое обсуждение опубликованных здесь скриптов. - При публикации здесь скриптов, старайтесь подробнее описывать принцип его работы, для чего используется и вставлять комментарии в тело скрипта; - Скрипт необходимо обрамлять тегами [ CODE ] [ /CODE ] - Если Вы доработали скрипт или хотите просто внести поправку в код, а право изменить ваше сообщение уже истекло, пишите мне в личку с цитированием старого скрипта (выделяем ваш старый скрипт в посте и нажимаем: "Цитировать" или даем ссылку на пост со скриптом. Перечень скриптов по разделам: Работа с терминальным сервером Завершение своей терминальной сессии с локального компьютера в домене Поиск\перемещение\отправка файлов Скрипт для оправки файлов на FTP+LOG и отчет на почту Скрипт для поиска файлов по маске и перемещению их в папку
Завершение своей терминальной сессии с локального компьютера в домене. Бывают ситуации, когда сессия пользователя на терминальном сервере просто подвисает или пользователь не может зайти в свой сеанс повторно. Как следствие обращается к администратору, что бы тот сбросил его сессию на терминалке, все это занимает время и наличие администратора на месте. Дабы пользователь САМ мог решить эту проблему, был написан батник и распространен на всем локальные компьютеры пользователей домена, которые работают с терминалкой. При запуске скрипта из под рядового пользователя в домене, завершается ИМЕННО его сессия (Активная\Дисконнектед\Подвисшая) на терминальном сервере где он работал и был авторизован под той же доменной учетной записью что и на своей машинке в домене. Код: @echo off :: Здесь задаем имя или ip адрес вашего терминального сервера Set SERVER1=Ваш_терминальный_Сервер :: определение имени вашей учетной записи на компьютере в домене - не трогаем! Set USER=%username% For /F "Tokens=1-4 Skip=1 Delims=# " %%i In ('qwinsta /Server:%SERVER1%') Do ( If "%%i"=="rdp-tcp" ( :: Завершаем Активную сессию If "%%k"=="%USER%" rwinsta %%l /Server:%SERVER1% ) Else ( :: Завершаем Дисконнектед сессию If "%%i"=="%USER%" rwinsta %%j /Server:%SERVER1% ) )
Скрипт для оправки файлов на FTP+LOG и отчет на почту Скрипт для оправки файлов на FTP с логированием и отчетом на почту. ftp_command.txt (тут лежат параметры) Код: login password cd директория куджа класть на FTP mput C:\*.txt команда множественного копирования файлов с локальной машины где запускается скрипт quit ftp_put.bat (сам батник) Код: @Echo Off set log=c:\scripts\log.txt ftp -s:ftp_command.txt -i ВАШ IP АДРЕС СЕРВЕРА FTP > log.txt type log.txt | findstr "^[3-5][0-9][0-9]" && echo yes тут у нас отбор по частым ошибкам при отправке 300-599 коды ошибок if errorlevel=1 (blat -body "error send ftp" -subject "ERROR ftp_put script" -p ftp -to ВАША ПОЧТА -charset windows-1251 -attach %log%)
Кто подскажет, как найти N количества .MP3 файлов на компьютере и переместить их в определённую папку. Буду очень признателен.
darthripper, Вариант 1 (простой, с использованием командной строки, без подсчета кол-ва найденных файлов): Код: xcopy /s c:\*.mp3 e:\mp3 где с - буква диска на котором производится поиск где e:\mp3 - буква диска и папка, в которую будут помещены все найденные mp3 файлы. Вариант 2 (с использованием Windows PowerShell ISE, с подсчетом кол-ва найденных файлов) Запустите Windows Powershell ISE от имени администратора, далее вставьте в окно следующий код, и нажмите "F5" Где: c:\* - диск, на котором буджет произведен поиск файлов *.mp3 (замените букву диска на вашу) c:\music - диск и папка в которую будут перемещены все найденные .mp3 файлы. (папку предварительно нужно создать + заменить букву диска на вашу) Move-Item -для перемещения файлов. Если хотите копировать, то измените на Copy-item Код: cls $src = "e:\*" # диск на котором осуществляем поиск файлов. $dst = "e:\music" # диск на который перемещаем найденные файлы. $ext = "mp3" # формат файлов, который пытаемся найти. Можете заменить на свой. $cnt = Get-ChildItem $src -Include *.$ext -Recurse -Force | select -ExpandProperty name Write-Host "Количество найденных файлов - $($cnt.Count)" -ForegroundColor yellow " " Write-Host "Идет перемещение найденных файлов..." -ForegroundColor Yellow " " #Move-Item -Destination $dest Write-Host "Перемещение завершено, проверьте файлы в папке $dst" -ForegroundColor green
Ох уж эти скрипты. В свое время учился в университете на программера. Но так, как нам объясняли , ничего не понимал. Только нашел вот видеокурсы , которые помогли освоить не только элементарные, но и достаточно сложные скрипты. Если где-то что-то не получается в написании, то опять обращаюсь к этому сайту.