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

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

Модерирует : KLASS, IFkO

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

Редактировать | Цитировать | Сообщить модератору
Задачи на bat-файлах 12
Предыдущие части: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • При запуске batch-файла от Администратора текущая директория меняется на system32
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Каталог D:\BAT\BAT существует
     
    Pasha_ZZZ
    Спасибо, вариант действительно намного проще.
     

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 20:33 27-07-2016
    nik4z



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sundraw
    Тогда скорее всего в тексте присутствует служебный символ, который приволит к сбою скрипта.

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 20:41 27-07-2016
    sundraw

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

    Цитата:
    sundraw
    Тогда скорее всего в тексте присутствует служебный символ, который приволит к сбою скрипта.  

    Файл, который пытаюсь редактировать, имеет расширение .rdp (параметры удалённого рабочего стола). Для удобства редактирования батником я перевёл его в текстовый. Может из-за этого? Хотя с расширением 1.rdp тоже ничего не меняется.

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 20:51 27-07-2016 | Исправлено: sundraw, 21:00 27-07-2016
    Victor33Man



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sundraw
    А можно этот дать батник вместе с файлом?
    Иначе приходится только гадать о причине.
    .RDP файлы такой структуры:
    =======================
    screen moae id:i:2
    desktopwidth:i:1280
    desktopheight:i:800
    session bpp:i:32
    winposstr:s:0,1,1,1,799,569
    =======================
    вроде нормально обрабатываются.
    Или речь о каких-то других?  
     

    Всего записей: 273 | Зарегистр. 06-04-2016 | Отправлено: 14:34 28-07-2016
    sundraw

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

    Цитата:
    А можно этот дать батник вместе с файлом?

    Сам файл 1.rdp , открытый блокнотом

    Код:
     
    screen mode id:i:1
    desktopwidth:i:800
    desktopheight:i:600
    session bpp:i:32
    winposstr:s:0,3,0,0,800,600
    compression:i:1
    keyboardhook:i:2
    audiocapturemode:i:0
    videoplaybackmode:i:1
    connection type:i:2
    displayconnectionbar:i:1
    disable wallpaper:i:1
    allow font smoothing:i:0
    allow desktop composition:i:0
    disable full window drag:i:1
    disable menu anims:i:1
    disable themes:i:0
    disable cursor setting:i:0
    bitmapcachepersistenable:i:1
    full address:s:192.168.1.2:3401
    audiomode:i:0
    redirectprinters:i:1
    redirectcomports:i:0
    redirectsmartcards:i:1
    redirectclipboard:i:1
    redirectposdevices:i:0
    redirectdirectx:i:1
    autoreconnection enabled:i:1
    authentication level:i:2
    prompt for credentials:i:0
    negotiate security layer:i:1
    remoteapplicationmode:i:0
    alternate shell:s:
    shell working directory:s:
    gatewayhostname:s:
    gatewayusagemethod:i:4
    gatewaycredentialssource:i:4
    gatewayprofileusagemethod:i:0
    promptcredentialonce:i:1
    use redirection server name:i:0
    use multimon:i:0
     

    Сам батник

    Код:
     
    @echo off
     
    SetLocal EnableExtensions EnableDelayedExpansion
     
    Set infile=O:\RDP\1.txt
    Set outFile=O:\RDP\RDP\1.txt
    Set find=800
    Set replace=1920
     
    for /F "UseBackQ delims=" %%n in ("%infile%") do (  
      set "LINE=%%n"
      echo=!LINE:%find%=%replace%!>>"%outFile%"
    )
     

    Здесь одно "но". В батнике указано расширение 1.txt. Если в батнике на вход-выход ставлю расширение 1.rdp и запускаю его, то выходной файл не появляется. Я переименовываю 1.rdp в 1.txt, запускаю батник (расширение 1.txt). Также выходного файла нет. В выходной папке O:\RDP\RDP\1.txt даже создавал пустой 1.txt, мало ли какой у него глюк, после отработки батника выходной файл всё-равно остаётся пустым.  
    Замечание: В батнике в качестве эксперимента на замену поставил только один параметр desktopwidth:i:800
     
    P.S. Попробовал редактировать другие файлы с расширением .bat , которые раньше работали, ситуация такая же. Похоже не в файлах проблема, а в железе. Комп разогнан, плюс диски SSD с резервированием на них пространства Over Provisioning  программой Samsung Magician, где-то здесь собака зарыта. Что-то пролетает мимо внимания батника  Другой причины не вижу. Жаль, что придётся приводить систему в оптимальный режим ради отработки одного скрипта. Очередной гемор, где скорости - это минус  

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 16:00 28-07-2016 | Исправлено: sundraw, 17:10 28-07-2016
    Sphinx114



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sundraw, похоже проблема в том, что rdp файл имеет кодировку utf-16 le, пересохрани его в 1251.

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 20:24 28-07-2016
    sundraw

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

    Цитата:
    sundraw, похоже проблема в том, что rdp файл имеет кодировку utf-16 le, пересохрани его в 1251.

    В P.S. я писал, что такая же ситуация и с файлами .bat, а они писались в обычном текстовом файле. А раньше с ними проблем не было. Поэтому не в кодировке дело.
    Заметил, что периодически не отрабатывают VBS-скрипты. Возможно, это звенья одной цепи. Диски целые. Похоже винда WIN 7 начала сыпаться. Попробую обновить.

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 21:47 28-07-2016 | Исправлено: sundraw, 22:00 28-07-2016
    carlosutah

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день! Может быть кто-нибудь на досуге подскажет мне чайнику:
     
    У меня Windows 10, я на рабочем столе создал папку, закинул туда 5 изображений (БЕЗ каких либо атрибутов) и bat-файл с таким текстом:
     
    @echo off  
    mode con codepage select=1251 > nul  
    echo Please wait...  
    attrib -s -h -r -a /s /d
     
    Далее я запустил этот bat-файл с правами администратора и в командной строке у меня побежал текст следуюшего содержания:
    ...
    Access denied - C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Microsoft-Windows-RasRip-Package~31bf3856ad364e35~amd64~ru-RU~10.0.10586.0.cat
    Access denied - C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Microsoft-Windows-RasRip-Package~31bf3856ad364e35~amd64~~10.0.10586.0.cat
    ...
     
    Через секунд 10 я нажал на крестик командной строки.  
     
    1) Не испортил ли я Windows?
    2) Правильно ли я понял (сужу по бегущему тексту в командной строке), что оно начало убирать (или пытаться убрать?) атрибуты у файлов и папок НЕ ТОЛЬКО В ДАННОЙ ПАПКЕ, где лежал данный bat-файл, а на всём диске С или даже на всём винчестере?  
    3) Если так, то почему? В тексте из какой-то книги (на скриншоте) речь идёт про текушую папку и подкаталоги.  
     
     

    Всего записей: 14 | Зарегистр. 05-08-2010 | Отправлено: 23:37 02-08-2016 | Исправлено: carlosutah, 23:53 02-08-2016
    VitaminP



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    carlosutah
    Видимо текущей папкой на момент запуска скрипта была системная папка Windows, поэтому и получилось то, что получилось. Чтобы этого избежать нужно явно указать папку нахождения скрипта для attrib:  attrib -s -h -r -a "%~dp0*" /s /d

    Всего записей: 306 | Зарегистр. 28-08-2013 | Отправлено: 10:31 03-08-2016 | Исправлено: VitaminP, 10:53 03-08-2016
    carlosutah

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я проверил:
    - если просто запускать мой bat-файл двойным кликом - всё работает нормально, и скрытые файлы в папке с bat-файлом перестают быть скрытыми, никакого лишнего пугаюшего текста в командной строке не бежит
    - если же этот bat-файл запустить от имени администратора (run as administrator) - то файлы в текушей папке как были скрытыми так и остались, а в командной строке бежит такой текст:
    ...  
    Access denied - C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Microsoft-Windows-RasRip-Package~31bf3856ad364e35~amd64~ru-RU~10.0.10586.0.cat  
    Access denied - C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Microsoft-Windows-RasRip-Package~31bf3856ad364e35~amd64~~10.0.10586.0.cat  
    ...  
     
    Не понимаю только почему (((
     
    VitaminP, я погуглил, но не разобрался - может подскажете разницу между:
     
    1) "%~dp0*" (то, что написали Вы)
    2) "%~dp0" (то, что я нашёл в гугле, но возможно речь шла про Unix, а не Windows)
    3) cd "%~dp0" (полный контекст того, что нашёл в гугле - см. скриншот)  
    4) %~dp0 (без кавычек, тоже встречалось в гугле)  
     
    Простите, если вопросы дурацкие, я просто в этом вообше не разбираюсь.
     
       
     
     
     

    Всего записей: 14 | Зарегистр. 05-08-2010 | Отправлено: 14:33 03-08-2016 | Исправлено: carlosutah, 14:47 03-08-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    carlosutah
    пока ты, для начала, не вызубришь результат выполнения:

    Код:
    FOR /?

    с тобой в принципе говорить не о чем...
    Когда осилишь то дальше по цепочке: cmd /?, set /? и так далее...

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 15:45 03-08-2016
    carlosutah

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

    Всего записей: 14 | Зарегистр. 05-08-2010 | Отправлено: 17:18 03-08-2016 | Исправлено: carlosutah, 09:49 04-08-2016
    VitaminP



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    carlosutah
    Да просто замени строку в батнике:
      attrib -s -h -r -a /s /d
    на
      attrib -s -h -r -a "%~dp0*" /s /d
    и посмотри какой будет результат

    Всего записей: 306 | Зарегистр. 28-08-2013 | Отправлено: 19:17 03-08-2016 | Исправлено: VitaminP, 19:21 03-08-2016
    Jon_Dow

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

    Цитата:
    1) "%~dp0*" (то, что написали Вы)
    2) "%~dp0" (то, что я нашёл в гугле, но возможно речь шла про Unix, а не Windows)
    3) cd "%~dp0" (полный контекст того, что нашёл в гугле - см. скриншот)  
    4) %~dp0 (без кавычек, тоже встречалось в гугле)  


    Цитата:
    FOR /?  

     
     
    Добавлено:
    я ответил на заданные тобой вопросы - не разжевал и в рот не положил... уж не обессудь если ты читать не умеешь. По-видимому писатель

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 20:00 03-08-2016
    VV2015

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    carlosutah
    Переменная %0 в батнике - имя самого батника.  
    ~dp между % и 0 - специальный синтаксис для расширения переменной %0 до полного пути к батнику: d - вывести букву диска (disk), p -вывести путь (path) к батнику.
    З.Ы. Jon_Dow злой, да. ) Но FOR /?  всё равно почитай.
     
     
    Добавлено:
    А, да. И про кавычки - ими обычно экранируют пути, содержащие пробелы, но для cd взлетит и без них. Кажись. )

    Всего записей: 228 | Зарегистр. 07-11-2015 | Отправлено: 22:20 03-08-2016
    carlosutah

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытался только что гуглить FOR /? - ничего не смог найти. Даже вот такой запрос "for /?" не срабатывает в гугле, чтобы находило именно такие символы в такой последовательности, проблема со слешем и вопросом(((

    Всего записей: 14 | Зарегистр. 05-08-2010 | Отправлено: 00:56 04-08-2016 | Исправлено: carlosutah, 09:47 04-08-2016
    YuS_two



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

    Цитата:
    Пытался только что гуглить FOR /?

    Этапять, конечно!
    Но искать надо не в гугле, а на своем компьютере, в командной строке...
    Пара советов, если есть желание получить ответ:
    1. Не пишите такие обширные посты-вопросы на форумы (если это, конечно, не какая-то фундаментальная работа), их не будут читать и с большой долей вероятности (процентов 90), ответ вы тоже не получите...  
    2. Старайтесь формулировать вопросы кратко, но с наиболее полным описанием того, что было сделано самостоятельно для решения вопроса (не прочитано и перепечатано сюда, а именно сделано для решения вопроса).
    Как говорится: в правильно заданном вопросе содержится половина ответа...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 07:28 04-08-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    carlosutah
    <Win>+<R>
    cmd.exe
    FOR /?
    И получишь результат
     
    Добавлено:
    То что тебе надо - ближе к концу
     
    Добавлено:
    carlosutah
    но в принципе, судя по уровню общения, тебе командная строка совсем не нужна по твоей задаче. Тебе надо:

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 09:19 04-08-2016 | Исправлено: Jon_Dow, 10:44 04-08-2016
    Falcon99



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть такая консольная программа  pdftk.exe.  
    Необходимо и с ее помощью из выделенных нескольких файлов pdf получить один. Как сделать не могу понять.  
    Т.е. алгоритм примерно такой:  
    - выделяем нужные файлы, и или перетягиваем на файл со скриптом или через стандартный пункт меню "Send to"  
    - скрипт получает список файлов
    - сортирует по названию файлов (для того чтобы последовательно происходило соединение файлов).  
    - формирует командную строку для pdftk.exe (название выходного файла например дата, время до секунды, путь куда помещать готовый файл берем из пути исходные файлы)
    - запускает создание объединенного файла.
     
    P.s. К сожалению очень далек от программирования. А представленные в теме программы не подошли.

    Всего записей: 607 | Зарегистр. 12-10-2005 | Отправлено: 18:42 09-08-2016
    HENDELF

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, использую батник для перемещения пользователя из группы Администраторы в Пользователи

    Код:
    runas /user:Ђ¤¬Ё-Ёбва в®а  "NET LOCALGROUP Ђ¤¬Ё-Ёбва в®ал %username% /delete"
    runas /user:Ђ¤¬Ё-Ёбва в®а  "NET LOCALGROUP Џ®«м§®ў вҐ«Ё %username% /add"
    ;runas /user:Ђ¤¬Ё-Ёбва в®а /savecred "shutdown -r -t 10"

    Но он не всегда срабатывает ошибка NET LOCALGROUP  и т.д.
    И есть мелкий нюанс он перемещает ту учетку из которой запущен.
    Можно сделать чтоб запускался от админской учетки, и менял прописаного полозователя ?

    Всего записей: 416 | Зарегистр. 22-02-2006 | Отправлено: 20:54 14-08-2016
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru