Полезные CMD\BAT скрипты

Тема в разделе "Batch (CMD/BAT)", создана пользователем Nod, 4 июн 2015.

  1. Nod

    Nod Moderator

    В этой теме публикуем полезные по вашему мнению скрипты, которые вы\коллеги\знакомые или Ваша организация
    используют для автоматизации выполнения любых задач.


    Правила постинга в данном разделе:
    - Запрещено любое обсуждение опубликованных здесь скриптов.
    - При публикации здесь скриптов, старайтесь подробнее описывать принцип его работы, для чего используется и вставлять комментарии в тело скрипта;
    - Скрипт необходимо обрамлять тегами [ CODE ] [ /CODE ]
    - Если Вы доработали скрипт или хотите просто внести поправку в код, а право изменить ваше сообщение уже истекло, пишите мне в личку с цитированием старого скрипта (выделяем ваш старый скрипт в посте и нажимаем: "Цитировать" или даем ссылку на пост со скриптом.


    Перечень скриптов по разделам:




    Работа с терминальным сервером
    Завершение своей терминальной сессии с локального компьютера в домене


    Поиск\перемещение\отправка файлов
    Скрипт для оправки файлов на FTP+LOG и отчет на почту
    Скрипт для поиска файлов по маске и перемещению их в папку
     
  2. Nod

    Nod Moderator

    Завершение своей терминальной сессии с локального компьютера в домене.

    Бывают ситуации, когда сессия пользователя на терминальном сервере просто подвисает или пользователь не может зайти в свой сеанс повторно. Как следствие обращается к администратору, что бы тот сбросил его сессию на терминалке, все это занимает время и наличие администратора на месте.

    Дабы пользователь САМ мог решить эту проблему, был написан батник и распространен на всем локальные компьютеры пользователей домена, которые работают с терминалкой.

    При запуске скрипта из под рядового пользователя в домене, завершается ИМЕННО его сессия (Активная\Дисконнектед\Подвисшая) на терминальном сервере где он работал и был авторизован под той же доменной учетной записью что и на своей машинке в домене.

    Код:
    @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%
       )
    )
    
     
  3. mac

    mac Full Member

    Скрипт для оправки файлов на 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%)
    
     
  4. darthripper

    darthripper Junior User

    Кто подскажет, как найти N количества .MP3 файлов на компьютере и переместить их в определённую папку.
    Буду очень признателен.
     
  5. oleg

    oleg Expert Вирусоборец

    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
    
    
     
    darthripper нравится это.
  6. darthripper

    darthripper Junior User

    Огромное спасибо!
     
  7. alex0381

    alex0381 Member

    Ох уж эти скрипты. В свое время учился в университете на программера. Но так, как нам объясняли , ничего не понимал. Только нашел вот видеокурсы , которые помогли освоить не только элементарные, но и достаточно сложные скрипты. Если где-то что-то не получается в написании, то опять обращаюсь к этому сайту.
     
  8. RaPaTun

    RaPaTun Newbie

    благодарю за сайт, полезная инфа в видеокурсах реальнн.
     

Поделиться этой страницей