Ответы пользователя по тегу cmd/bat
  • Как переписать Ping( с временными метками) с linux на windows?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    вот вам максимально похоже на PoSH
    Test-Connection -Ping ya.ru -count 100 | FT -HideTableHeaders {Get-Date -Format "ddd MMM dd HH:mm:ss z yyyy"},{$_.BufferSize.ToString()+' bytes'},{'from '+$_.Destination+' ('+$_.Address+'):'},{'icmp_seq='+$_.Ping},{'time='+$_.Latency+' ms'}
    Ответ написан
    Комментировать
  • Нужно исправить строку в батнике, так как не запускается исполняемый файл exe, как это сделать?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    для начала: в bat файлах %AllUsersProfile% должно выглядеть как %%AllUsersProfile%%
    Во вторых, проверьте, есть ли вообще эта переменная и куда она ведет : в командной строке
    echo %AllUsersProfile%
    И, конечно, C:\Users в изначальном батнике лишнее, поскольку в современных ОС Windows AllUsersProfile ведет в C:\ProgramData
    Заодно проверьте а есть ли по указанному в AllUsersProfile пути ваш исполняемый файл
    Ответ написан
  • Хочу научиться пользоваться командной строкой Windows? Какие материалы посоветуете?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    cmd - наихудший способ "войти в it"
    используйте powershell
    Ответ написан
    Комментировать
  • Почему bat выводит в wmic неправильный месяц?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    win32_utctime
    посмотри сколько сейчас времени по UTC и у вас (насколько я понимаю вы живете по московскому времени
    алсо, для дебага - выведите себе результат
    wmic path win32_utctime get /format:list и внимательно просмотрите.
    Сейчас вторая неделя месяца и именно эта строка встречается последней (а не сам month) - поэтому ваши фильтры выцепляют именно ее.

    А вообще закопайте уже стюардессу и пишите на powershell, если вы, конечно, не занимаетесь арехологией. Пометка: используйте Windows Powershell а не последний доступный Posh 7. Работа с wmi есть только в windows powershell, из более новых версий она выпилена в угоду кросплатформенности
    Ответ написан
  • Как осуществить поиск и копирование блока строк по ключевому слову в *.txt?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Powershell сейчас не под рукой но выглядеть скрипт должен как то так:
    $file = 'ваш файл'
    $newfile = 'другой файл'
    $keyword = 'parametr'
    (get-content $file -raw) -split "\n\n" | foreach {
        $firststring = $_ -split '\n' | select -first 1
        if $firststring -like $keyword { add-content $newfile $_}
    }

    здесь точно напутано с экранированием спец. символов, а так же не сделаны некоторые обработки для отсутствующих файлов и много чего еще. Дорабатывайте на здровье :D
    Ответ написан
    1 комментарий
  • Нужно отсортировать все файлы по папкам.?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Powershell
    Set-Location c:/temp
    $groups = (Get-ChildItem A*).Name | group-object -property {$_.Substring(30,$_.Length -37)} -ashashtable -asstring
    $groups.Keys | foreach-object { 
        $folder=$_; $groups[$folder] | foreach-object {
                      new-item -itemtype file -path "$folder/$_" -force
                      move-item -path $_ -destination "$folder/$_" -force
         }
    }

    Если нужен однострочник
    cd c:/temp;$g=(dir A*).Name | group {$_.Substring(30,$_.Length -37)} -AHT -asstring;$g.keys | %{$f=$_;$g[$f] | %{ni -type file -path $f/$_ -force; mv $_ $f/$_ -force}}

    Однострочник можно, взяв в одинарные кавычки, передать параметром в powershell.exe, если вам надо было бы использовать этот функционал в уже написанных cmd скриптах.
    Но вообще не надо откапывать стюардессуиспользовать cmd для скриптов. Используйте powershell \ python
    Ответ написан
    2 комментария
  • Как написать батник, который удаляет файлы, в которых есть строка с заданным содержимым в заданной директории?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    в помощь: https://ss64.com/nt/
    подсказка от КО:
    вам понадобится команда которая ищет строки в файлах (одна из)
    вам понадобится команда которая выполняет другую команду для всех результатов выполнения третьей команды
    вам понадобится команда которая выполняет удаление файлов (ха-ха, простите).

    Или же возьмите powershell (хватит откапывать стюардессу мучать cmd )
    Оба скрипта получатся довольно простыми, что на Posh что на cmd
    Ответ написан
  • Как поставить timeout?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    вот странно, у вас питоновские скрипты, в питоне есть множество способов организовать контролируемый таймаут выполнения субскрипта, но вы хотите cmd\bat
    import subprocess
    try:
        r = subprocess.run(['python', 'script2'], timeout=5)
    except subprocess.TimeoutExpired as e:
        print(e)
    try:
        r = subprocess.run(['python', 'script1'], timeout=50)
    except subprocess.TimeoutExpired as e:
        print(e)


    Вот странно, у вас windows,почти в любой windows есть powershell, отлично умеющий управлять процессами, но вы хотите cmd\bat
    $p1=start 'python  script1.py' -PassThru -NoNewWindow
    $p2=start 'python  script2.py' -PassThru -NoNewWindow
    $p1 | Wait-Process -Timeout 10 -ErrorAction SilentlyContinue -ErrorVariable t1;if ($t2) { $p1 | kill}
    $p2 | Wait-Process -Timeout 500 -ErrorAction SilentlyContinue -ErrorVariable t2;if ($t2) { $p2 | kill}


    Может быть стоит прекратить разврат и закопать стюардессу?
    Ответ написан
    Комментировать
  • Как убрать тире в текстовом документе?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Для того чтобы дать что-то для сравнения к ответу res2001: Сами решайте где сложнее а где проще
    Posh
    (get-content old.txt -raw) -replace "-","" | set-content new.txt

    встраиваем в cmd:
    powershell.exe "(get-content old.txt -raw) -replace '-','' | set-content new.txt"
    Ответ написан
    3 комментария
  • Как переместить файлы по папкам по четности/нечетности имени?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Posh
    $folder='z:\test';$target=("$folder\a","$folder\b"); Get-ChildItem $folder -File | foreach { $p=[int]$_.BaseName % 2; Move-Item $_ $target[$p] }
    Ответ написан
    2 комментария
  • Самый простой и быстрый способ отправить webhook из cmd?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    в 90% более-менее современных версиях Windows есть powershell
    в скрипте пишете
    powershell.exe "invoke-webrequest 'https://url' - usebasicparsing"
    Для указания хидеров или данных которые будете передавать - читайте хелп по коммандлету
    Сразу предупреждаю (вы не указали версию ОС) :
    1. при первом старте может появиться окно IE с инициализацией профиля (в старых версиях posh)
    2. https может не сработать если не укажете конкретную реализацию TLS которую использовать. Или вообще не сработать если, например, вас .net 3.5 в системе а целевой сайт использует минимальную версию tls 1.2

    Встроенным методом - только powershell. Но вы имеете шанс столкнуться с чудесами, я вас предупредил.
    Альтернативно - просто скачайте curl
    Ответ написан
    4 комментария
  • Можно ли переключать моно/стерео звук в Windows 10 с помощью командной строки?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Ответ написан
    Комментировать
  • Какие права требуется настроить для копирования папок другого пользователя скриптом по сети?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    я бы порекомендовал подойти к проблеме с другой стороны.
    1. настроить общую сетевую папку чтобы пользователи(domain users) могли на ней создавать папки без наследования а права на вложенные папки были полные у creator owner и у домен админа ( и вас\вашей группы, если вы в домен админы не входите)
    2. написать скрипт(а лучше скрипты-однострочники - по одному на папку пользователя) используя robocopy на зеркалирование необходимых папок в эту общую папку из под учетной записи пользователя. Robocopy есть в составе win10\win7 а для windows xp - https://www.microsoft.com/en-us/download/details.a...
    Cмотрим ключи /mir /ZB - для мониторинга изменений можно использовать ключ /MOT:m
    ключ /TBD тоже, скорее всего, понадобится - у вас папка сетевая
    так же существует возможность более тонкой настройки - изучайте доступные ключи.
    на WinXP, возмжно, набор ключей будет отличаться, но основной функционал будет таким же
    3. Настроить запуск robocopy при входе пользователя в систему с рестартом задачи раз в, скажем, час (или реже, если включен режим мониторинга изменений)
    Идеально - по задаче на папку, но можно и один скрипт на все запустить, все равно колхозите
    Робокопи будет оставаться висеть в памяти и заниматься синхронизацией. На 6Тб файловых серверах на данный момент он отлично справляется с подобной синхронизацией с минимальным потреблением памяти. Рестарт задачи нужен на случай проблем.

    Плюс этого варианта в том, что копироваться будут те файлы к которым имеется доступ пользователя - исключены проблемы с правами. Если копирование не удается - значит доступ к файлу даже на чтение напрямую запрещен системой, то есть вы так и так его не скопируете.
    Сложность (минимальная) - в адекватной настройке самой сетевой папки куда все будет копироваться, иначе ее можно превратить не в зеркало пользовательских файлов а в файлопомойку где все имеют доступ везде.

    Совет: забудьте про cmd
    Совет на будущее: не колхозьте. У вас есть AD а значит и доступны сетевые папки пользовательских файлов с branch cache если это необходимо в случае плохого интернета между файловым сервером и пользователем
    Ответ написан
    Комментировать
  • Почему долго выполняется bat файл из 2 строк?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    https://habr.com/ru/post/212413/
    Внимательно изучите комментарии, может быть вы сможете с их помощью решить именно вашу задачу (хотя я не совсем понял как именно вы хотите ее решать, но уповаю на вашу самостоятельность)
    Ответ написан
    Комментировать
  • Как в batch узнать имя текущей ветки git и перейти на эту ветку в другой папке?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Аналогично предложенному Saboteur задачу можно решить и в PowerShell.
    В bat:
    FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
    SET var=%%F
    )
    ECHO %var%
    и дальше работать так же как в примере выше.
    Но лучше использовать PowerShell или sh
    Ответ написан
    1 комментарий
  • Регулярное выражение в .BAT, как правильно написать?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Отчасти Армянское Радио прав: вы не сможете использовать ваше регулярное выражение в cmd скриптах.
    Выхода 2:
    1. переписать регулярку на использование средств командной строки
    например findstr или for
    Однако с группами в findstr я вот не умею работать и даже не представляю, умеет ли он группы
    for /f группы умеет, но ограниченно и поддерживать два вида регулярок вам оно надо?
    2. использовать powershell
    https://docs.microsoft.com/en-us/powershell/module...
    Опять таки не гарантирую, что ваша регулярка подойдет без переделок (а еще не гарантирую что в вашей версии posh будет такое же поведение как в описанном документе)
    Ответ написан
    Комментировать
  • Как в cmd взять срез строки, которая лежит в буфере обмена?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Создаете файл clipboard.vbs
    Set objHTML = CreateObject("htmlfile")
    text = objHTML.ParentWindow.ClipboardData.GetData("text")
    Wscript.Echo text

    и в командной строке используете
    cscript clipboard.vbs
    для получения данных буфера обмена
    P.S. зачем и почему - не спрашивайте, даже вспоминать не хочу
    Ответ написан
    Комментировать
  • Можно ли управлять cmd виндовса с андроида?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    CMD - нет. Вообще, забудьте про это средство.

    Начиная с W10(и соответствующей серверной OS) есть возможность использовать встроенный openssh сервер, подготовленный MS, но вопрос, что через него вам будет доступно для управления - никогда не пробовал его использовать.
    С клиентской стороны используем для управления любой нормальный ssh клиент для андроида.
    Ответ написан
    Комментировать
  • Как узнать по guid раздела к какой букве он подключен?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    powershell
    (Get-Volume -UniqueId "\\?\Volume{GUID}\").driveletter
    Ответ написан
  • Как в батнике делать уникальное сохранение без использования даты?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Ваше "переменное" значение - количество файлов в папке.
    @for /F %%a IN ('attrib.exe ./*.* ^|find /c /v ""') DO @set result=%%~a
    @echo %result%

    переменную result далее используйте как вздумается
    Ответ написан
    Комментировать