Задать вопрос
Ответы пользователя по тегу cmd/bat
  • Как заменить символ во всех файлах?

    @res2001
    Developer, ex-admin
    Для обхода файлов по маске используете цикл for. Из переменной цикла с помощью модификаторов получаете имя файла. С помощью операции замены подстроки в команде set делаете замену в имени файла. С помощью ren задаете файлу новое имя.
    Для справки:
    for /?
    set /?
    ren /?
    setlocal /?

    Модификаторы для переменной цикла описаны в справке по for.
    В теле цикла вам придется изменять переменные и тут же использовать новые значения. По умолчанию в батниках это не работает. Чтоб работало надо в самом начале дать команду
    setlocal ENABLEDELAYEDEXPANSION
    Затем для обращение к переменной в нутри цикла использовать восклицательные знаки, а не знаки процента, например так: !var!. Это приведет к отложенной подстановке переменных в команду. Переменная цикла всегда работает с процентами %%i
    Ответ написан
    Комментировать
  • Как закрепить ярлык на панели задач через gpo?

    @res2001
    Developer, ex-admin
    Ответ написан
    Комментировать
  • Как создать bat file с вызовом окна вопроса, восклицания, ошибки и подкюченеим \отключением устройств?

    @res2001
    Developer, ex-admin
    Для вывода окна с сообщением раньше была команда msg. Но сейчас я ее не обнаружил у себя в Вин10. Возможно ее нет в домашней версии, а в Pro есть.

    Про отключение устройств - у микрософт есть утилита командной строки devcon. Но она не входит в комплект по умолчанию, она есть в составе какого-то SDK у микрософт, гуглите. Эта утилита не показывает окон - все свои действия она выполняет в командной строке, все действия, которые она должна совершить задаются параметрами утилиты.

    Показать окно с сообщением или вопросом может сторонняя утилита nircmd. nircmd - это такой комбайн из целого набора разных полезных утилит, которые можно вызывать из командной строки. Возможно там же есть и работа с устройствами.

    Итог: ваши хотелки на bat/cmd штатными средствами не реализовать.
    Либо вы используете сторонние утилиты, либо используете другой инструмент - думаю, в том же powershell это все можно сделать. Так же в винде из коробки доступны VBScript и JScript их то же можно копнуть.
    Ответ написан
    Комментировать
  • Как получить текущий путь в BAT файле?

    @res2001
    Developer, ex-admin
    Именно так и узнавать текущий путь: %CD%
    Это не важно где лежит батник, т.к. исполняется не сам батник, а cmd.exe. Т.е. когда вы 2ПКМите на батнике, лежащем на раб.столе запускается команда: cmd.exe /c c:\users\user\Desktop\file.bat
    При этом путь где лежит батник никакого отношения к текущему пути не имеет. cmd.exe обычно запускается с текущим каталогом %SystemRoot%\System32.
    Чтоб перейти в каталог, где лежит батник, используйте команду: cd /d "%~dp0"
    Пути можно получать из параметров батника, указанным способом, то же самое можно делать для переменных цикла, и параметров процедур. Список доступных модификаторов (буквы после %~ доступны в описании команд call и for.
    Ответ написан
    1 комментарий
  • Работа конвейера в windows с python?

    @res2001
    Developer, ex-admin
    Вместо входного файла нужно использовать stdin и читать данные из него.
    Ответ написан
    Комментировать
  • Как выполнить git clone если в адресе есть пробел?

    @res2001
    Developer, ex-admin
    Удвойте знак процента - процент служебный символ, его надо экранировать
    Ответ написан
    Комментировать
  • Какой bat файл нужен для проверки состояния USB при включении?

    @res2001
    Developer, ex-admin
    Помнится где-то у микрософта была утилита командной строки devcon. Она позволяла много чего делать с устройствами. Посмотрите, может и вам поможет.
    Она умеет включать/отключать устройства, показывать состояние и т.п.
    https://docs.microsoft.com/en-us/windows-hardware/...
    Ответ написан
    Комментировать
  • Как из папки раскидать все файлы по подпапкам по 10 шт?

    @res2001
    Developer, ex-admin
    но как указать чтоб скрипт работал с конкретной папкой

    Вам bat и cmd файлы то же надо раскидывать по каталогам?
    ...
    set "dirname=./test"
    ...
    For %%A In ("%dirname%/*.bat" "%dirname%/*.cmd" "%dirname%/*.mp4") Do (
    ...
        move /y "%dirname%/%%~A" "%DirN%"
    ...

    Зачем вам robocopy? С переносом файлов вполне справится move.
    Ответ написан
    Комментировать
  • Как пройти ошибку в bat файле при присвоении имени файлам?

    @res2001
    Developer, ex-admin
    У вас там ожидалось только имя файла, а вставляется полный путь к файлу, поэтому и ошибка.
    Вот это место в команде "part-^%03d.mp4".
    Замените на "%%~ni.mp4"
    Ответ написан
    6 комментариев
  • Как получить дату -3 дня?

    @res2001
    Developer, ex-admin
    Батники не умеют работать с датами. Все переменные там - строки.
    Вы можете вручную разделить дату на составные части и вычислить -3 дня.
    Так же можно написать вспомогательный скрипт на JS/VBS, которые умеют работать с датами. В скрипт передавать дату и он будет вычислять -3 дня и выводить ее в stdout, где батником можно эту дату прочитать.
    Или же вы можете использовать powershell вместо cmd, там, наверняка, можно решить вашу задачу без лишних телодвижений.

    Но вам же для чего-то нужна дата "-3 дня". Если знать для чего вы пытаетесь вычислить такую дату, то может найдутся и другие способы ее решения, без вычисления.
    Ответ написан
    9 комментариев
  • Как запустить exe через cmd?

    @res2001
    Developer, ex-admin
    Вроде cmd не поддерживает URL.
    Попробуйте использовать start для запуска. start /?
    Можно подключить шару, затем запустить программу, после завершения программы отключить шару.
    net use /?
    Ответ написан
    Комментировать
  • Хранение файлов за 2 месяца + 1 файл первого числа месяца?

    @res2001
    Developer, ex-admin
    Можно вызывать в cmd конвеер, в котором попытаться отфильтровать файлы за первое число.
    Примерно что-то такое:
    forfiles -p "c:\folder" -s -m *.* -d -1 -c "cmd /c (dir @path | findstr /v /r /c:"тут регулярное выражение для поиска 1 дня в дате") && del /q @path"

    Это лишь схема, как можно подойти к решению. Ничего не отлаживал.
    Конвеер можно отладить отдельно, запихнув его в батник или прямо из командной строки.
    Сформировать регулярное выражение, думаю, будет не трудно. Я давно ими не пользовался, так что выветрилось из головы, а вспоминать лень.
    Вижу некоторые трудности со вложенными кавычками, возможно надо как-то их экранировать. Может что-то по этому поводу есть в справке по forfiles.
    Кстати, формат вывода даты в dir зависит от системных настроек формата даты, так что на разных компах он может быть разным. Имейте это ввиду. cmd не умеет работать с датами, поэтому приходится использовать только возможности работы со строками.
    Ответ написан
    Комментировать
  • Как отключать дисплей через n минут (bat настройка) в домене и без него?

    @res2001
    Developer, ex-admin
    Просто настройте скринсейвер нормально.
    Это можно сделать через реестр для не входящих в домен. После правки реестра начнет работать после перезагрузки. Ключи реестра не скажу, но, думаю, их можно нагуглить без проблем.
    В доменных - наверняка должно быть в GPO.
    Ответ написан
  • Перенести каждый файл в свою папку и переименовать папку в имя из имени файла?

    @res2001
    Developer, ex-admin
    Проходитесь по всем файлам в каталоге с помощью цикла for.
    Выделить подстроки в имени файла можно с помощью for /f, установив соответствующий разделитель.
    Создать каталог md
    Перенести файл: move
    За подробностями:
    for /?
    md /?
    move /?

    Наверняка понадобится отложенное расширение переменных:
    setlocal /?
    Ответ написан
    1 комментарий
  • Как разукрасить текст консоли разными цветами?

    @res2001
    Developer, ex-admin
    Речь ведь про винду?
    В cmd есть команда color. Никогда ей не пользовался, так что не помню цвет чего она меняет, посмотрите в справке. Набор цветов у нее достаточно скудный.
    Так же консоль поддерживает Esc последовательности, где можно задавать цвета выводимых символов. Но тут, скорее всего придется использовать низкоуровневое Console API: https://docs.microsoft.com/en-us/windows/console/c...
    Возможно какие-то консольные библиотеки это поддерживают. Что-то типа ncurses.
    Еще можно заглянуть в исходники, например Far manager, посмотреть как они там работают с цветом в консоли.
    Ответ написан
    Комментировать
  • Как распаковать архив с самой последней датой создания?

    @res2001
    Developer, ex-admin
    Вывести список файлов, соответствующих маске отсортированный по дате в обратном порядке:
    dir /a-d /o-d /b *.7z
    Эту команду запихнуть в for /f, обработать в цикле только первый файл и выйти из цикла.
    Ответ написан
    Комментировать
  • Можно ли командой удалить все метаданные у файлов?

    @res2001
    Developer, ex-admin
    Видимо имеются ввиду какие-то медиа файлы (картинки, видео, ...) и метаданные, которые хранятся в самом файле.
    Такие метаданные можно удалить, есть соответствующие утилиты, гуглите. На вскидку ничего не подскажу, т.к. сейчас далек от этого, но в свое время сталкивался с подобным вопросом и решал его вполне успешно.
    Ответ написан
    Комментировать
  • Как разделить xml файл спомощью bat/cmd?

    @res2001
    Developer, ex-admin
    В батниках не реально обрабатывать xml, т.к. символы тегов, являются служебными для cmd, как только такая строка попадет в командную строку в батнике будет ошибка.
    Так что этот вариант сразу отбросьте.

    В винде есть и другие скриптовые языки из коробки, например power shell или jscript, используйте один из них.
    На jscript помимо того, что можно просто обработать xml, как текстовый файл, можно использовать и xml парсер со всеми плюшками. На счет power shell я не в курсе, возможно то же есть что-то подобное.
    Раз у вас wordpress используется, значит уже установлен PHP, можете его использовать.
    Ответ написан
  • Из CMD блокировать / разблокировать IP сетевого принтера?

    @res2001
    Developer, ex-admin
    Добавить/удалить правило в фаервол винды с помощью netsh.
    Ответ написан
    Комментировать
  • Создание много папок в Windows?

    @res2001
    Developer, ex-admin
    В батниках все переменные строковые!
    set /a для арифметических действий преобразует строки в числа, делает действия и сохраняет строку в результате.
    Поэтому дополнение нулями простое: дописываем к числу максимальное необходимое количество нулей, затем убираем лишнее с помощью операции извлечения подстроки.
    Для извелечения подстрок читай:
    set /?
    Ответ написан
    3 комментария