[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 10 месяцев
  • Сообщений: 1130
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
grafmontekristo, это значит, что папка в которой находится батник.

[Цитировать]

    grafmontekristo
  • 33957
  • Стаж: 1 год 1 месяц
  • Сообщений: 17
  • Репутация:0

    [+] [-]
101491папка в которой находится батник
Значит не требеется изменять на ExclusionPath="C:\Path\to\folder with spaces\\"
Может быть требуется ввести в исключения на другого диска, а тут прописска на "C:\Path\to\folder with spaces\\"

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3817
  • Репутация:127

    [+] [-]
Команда НЕ работает
robocopy C:\Path\ "D:\Path\"
-Команда РАБОТАЕТ.
robocopy C:\Path\ "D:\Path\\"
---
Поскольку разные части Виндовс пишут разные команды индусов, разные утилиты ведут себя по-разному. Но общее всё же встречается.

[Цитировать]

    grafmontekristo
  • 33957
  • Стаж: 1 год 1 месяц
  • Сообщений: 17
  • Репутация:0

    [+] [-]
pause
101493robocopy C:\Path\ "D:\Path\\"
Так правильно?
echo "%~dp0"
pause
wmic /NAMESPACE:\\"root\Microsoft\Windows\Defender PATH MSFT_MpPreference call Add ExclusionPath="robocopy C:\Path\ "D:\Path\\"
Если нет, подравьте пожалуйста полностью.

[Цитировать]

    yegres
  • 32359
  • Стаж: 1 год 8 месяцев
  • Сообщений: 15
  • Репутация:1

    [+] [-]
Добрый день.
Есть хорошая утилита MAS 2.4, для активации Windows и MsOffice.
Для запуска крайней версии достаточно в Power Shell ввести команду:
irm https://massgrave.dev/get | iex
Подскажите, как можно автоматизировать данный процесс, без копирования этого кода и вставки в Power Shell?
Т.е. запустил батник, а он уже запустил Power Shell и ввел туда этот код, или возможно как-то по другому, но чтобы это получалось автоматом. Либо чтобы это был какой-то файл, содержащий этот код, при нажатии правой кнопкой мыши можно было открыть его в Power Shell.
UPD
darkalexx4, спасибо, все отлично заработало.


Последний раз редактировалось: yegres (2023-10-30 12:22), всего редактировалось 1 раз

[Цитировать]

    darkalexx4
  • 346
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 175
  • Репутация:7

    [+] [-]
  • Откуда: Минск
grafmontekristo,
101508Добрый день.
Есть хорошая утилита MAS 2.4, для активации Windows и MsOffice.
Для запуска крайней версии достаточно в Power Shell ввести команду:
irm https://massgrave.dev/get | iex
Подскажите, как можно автоматизировать данный процесс, без копирования этого кода и вставки в Power Shell?
Т.е. запустил батник, а он уже запустил Power Shell и ввел туда этот код, или возможно как-то по другому, но чтобы это получалось автоматом. Либо чтобы это был какой-то файл, содержащий этот код, при нажатии правой кнопкой мыши можно было открыть его в Power Shell.

Как вариант

@echo off
powershell -ExecutionPolicy Bypass -Command "irm https://massgrave.dev/get | iex"
Затем сохраните этот файл с желаемым именем, например, run_script.bat.
Когда вы выполните этот батник, он запустит PowerShell с параметром -ExecutionPolicy Bypass, который позволит выполнить сценарий без ограничений на выполнение сценариев. Затем команда irm https://massgrave.dev/get | iex будет выполнена в PowerShell.
Добавлено через 8 минут 34 секунды:
101494pause
101493robocopy C:\Path\ "D:\Path\\"
Так правильно?
echo "%~dp0"
pause
wmic /NAMESPACE:\\"root\Microsoft\Windows\Defender PATH MSFT_MpPreference call Add ExclusionPath="robocopy C:\Path\ "D:\Path\\"
Если нет, подравьте пожалуйста полностью.
Я конечно не эксперт, но вот что получил по вашему запросу:

Если это то, что вам нужно?

@echo off
echo "%~dp0"
pause
:: Выполнение wmic для добавления исключения в Windows Defender
wmic /NAMESPACE:\\root\Microsoft\Windows\Defender PATH MSFT_MpPreference call Add ExclusionPath="C:\Path"
wmic /NAMESPACE:\\root\Microsoft\Windows\Defender PATH MSFT_MpPreference call Add ExclusionPath="D:\Path"
:: Запуск robocopy (если это то, что вы хотите сделать)
robocopy C:\Path D:\Path /E /MIR
pause

Либо так

@echo off
setlocal enabledelayedexpansion
:: Получение текущей директории
set "current_directory=%cd%"
:: Добавление текущей директории в исключения Windows Defender
wmic /namespace:\\root\Microsoft\Windows\Defender path MSFT_MpPreference call AddExclusionPath="%current_directory%"
:: Запуск robocopy для копирования из C:\Path в D:\Path
robocopy C:\Path D:\Path /E /MIR
pause

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3817
  • Репутация:127

    [+] [-]
Я привел команду robocopy просто как пример того, как работает/не работает связка \"
fp

[Цитировать]

    darkalexx4
  • 346
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 175
  • Репутация:7

    [+] [-]
  • Откуда: Минск
Тогда прошу простить меня.

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 9 лет 2 месяца
  • Сообщений: 527
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
Приветствую. Помогите решить загадку.
Недавно настраивал ноут, Tecno T1, у них на сайте драйвера в любопытном виде - сразу весь комплект, не инсталляторы, а распакованные, плюс батник для автоустановки.
Выглядит так:

Картинка

Текст батника:

AutoInstallDrivers.bat

@ECHO OFF
REM ________________________________________________________________
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo Open Command Prompt Administrator...
    goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
REM ________________________________________________________________
@echo OFF
@echo.
::Copy this AutoInstallDrivers.bat to the divers directory,run as admin.
@echo off
cd /d "%~dp0"
set debug=0
set ST106=1
@echo Installing all drivers...
for /f "delims=" %%a in ('dir /a-d/s/b *.inf') do (
if %debug% EQU 1 @echo installing "%%~a" >>msg.txt &&pnputil -i -a "%%~a" >>msg.txt
if %debug% EQU 0 @echo installing "%%~a" && pnputil -i -a "%%~a"
@ping 127.0.0.1 -n 3 >nul)
if ST106 EQU 0 goto :end
@echo.
@echo Installing supplement drivers...
for /f "delims=" %%c in ('dir /a-d/s/b 43430r0nvram.txt') do (
if exist "%%~c" copy "%%~c" C:\Windows\System32\drivers\
)
for /f "delims=" %%c in ('dir /a-d/s/b 43430r1nvram.txt') do (
if exist "%%~c" copy "%%~c" C:\Windows\System32\drivers\
)
ping 127.0.0.1 -n 3 >nul
@echo "*** DTS APO4x Extension Package installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_MSFT_SIGNED_Transsion_EXT_1_11_6_0_beta\dtsapo4Transsionextensionpkg.inf" /install
@echo "*** DTS APO4x Core Package installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_Core_MSFT_SIGNED_1_11_6_0_21H1_21H2_22H2\dtsapo4x64.inf" /install
@echo "*** DTS APO4x Service installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_RPCService_MSFT_SIGNED_1_11_2_0_21H1_21H2_22H2\dtsapo4xservice.inf" /install
@echo "*** DTS:X Ultra HSA SWC installation ***"
pnputil -a "%~dp0DTSXUltra_UWP_APO4x_HSA_MSFT_SIGNED_1_11_4_0_21H1_21H2_22H2\dtsapo4xultrahsa.inf" /install
@echo "*** DISM install DTS:X Ultra package ***"
cd %~dp0DTSXUltraHSA_1.11.14.0_x64_bundle.appxupload_Windows10_PreinstallKit
dism.exe /online /Add-ProvisionedAppxPackage /PackagePath:"541bbf7c680b4237a82c8eb42d98100c.appxbundle" /LicensePath:"541bbf7c680b4237a82c8eb42d98100c_License1.xml" /DependencyPackagePath:"Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x64__8wekyb3d8bbwe.appx" /DependencyPackagePath:"Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64__8wekyb3d8bbwe.appx" /DependencyPackagePath:"Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.appx" /Region:"all"
cd ..
ping 127.0.0.1 -n 3 >nul
@set L=C:\Windows\temp\install.log
@set IP=[********Install Pass********]
@set IPR=[********Install Pass, Restart is need********]
@set IF=[********Install Fail********]
@echo [%time%]=========Install Realtek Audio App========== >> %L%
DISM /Online /Add-ProvisionedAppxPackage /PackagePath:"%~dp0Apps\ecaea797ab7b46ccb32127ca92166a19.appxbundle" /licensepath:"%~dp0Apps\ecaea797ab7b46ccb32127ca92166a19_License1.xml" /DependencyPackagePath:"%~dp0Apps\Microsoft.VCLibs.140.00_14.0.30704.0_arm__8wekyb3d8bbwe.appx" /DependencyPackagePath:"%~dp0Apps\Microsoft.VCLibs.140.00_14.0.30704.0_arm64__8wekyb3d8bbwe.appx" /DependencyPackagePath:"%~dp0Apps\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.appx" /DependencyPackagePath:"%~dp0Apps\Microsoft.VCLibs.140.00_14.0.30704.0_x86__8wekyb3d8bbwe.appx" /Region="All" >> %L%
@if %errorlevel%==0 (echo [%time%]%IP% >> %L% & goto resultpass)
@if %errorlevel%==3010 (echo [%time%]%IPR% >> %L% & goto resultpass)
@if not %errorlevel%==0 goto ERR
:resultpass
@echo [%time%]=========Realtek Audio App Install Complete========= >> %L%
ECHO ERRRORLEVEL=%ERRORLEVEL% >> %L%
@set LL=C:\Windows\temp\ALC256_HSA.log
@echo [%time%] >>%LL%
color 0a
@echo ===================================================================
@ECHO.
@ECHO     PPPPPPPPpp            A            sSSSSSSSSs       sSSSSSSSSs
@ECHO     PPP       PPp        AAA         SSs        SS    SSs        SS
@ECHO     PPP        PPP      AA AA       SSS              SSS
@ECHO     PPP        PPP     AA   AA      SSS              SSS
@ECHO     PPP       PPP     AA     AA      SSSSSs           SSSSSs
@ECHO     PPPPPPPPPP       aAA     AAa          SSSSSs           SSSSSs
@ECHO     PPP             aAAAAAAAAAAAa              SSS              SSS
@ECHO     PPP             AAA       AAA              SSs              SSs
@ECHO     PPP            AA           AA  Ss        SSS   Ss         SSS
@ECHO     PPP           AA             AA  SSSSSSSSSS       SSSSSSSSSS
@ECHO.
@echo ===================================================================
pause
shutdown -r -t 3
pause
pause
:ERR
echo [%time%]%IF% >> %L%
ECHO ERRRORLEVEL=%ERRORLEVEL% >> %L%
:fail
color 04
echo %error% fail
@ECHO.
@ECHO     FFFFFFFFFFFFFF        A          IIIIIIIIIIIII    LLL
@ECHO     FFF                  AAA              III         LLL
@ECHO     FFF                 AA AA             III         LLL
@ECHO     FFF                AA   AA            III         LLL
@ECHO     FFFFFFFFFFFFF     AA     AA           III         LLL
@ECHO     FFF              aAA     AAa          III         LLL
@ECHO     FFF             aAAAAAAAAAAAa         III         LLL
@ECHO     FFF             AAA       AAA         III         LLL
@ECHO     FFF            AA           AA        III         LLL
@ECHO     FFF           AA             AA  IIIIIIIIIIIII    LLLLLLLLLLLLL
@ECHO.
popd
pause
pause
EXIT /B 1
Не могу вдуплить вот что:
1. Изначально идет поиск и установка всех inf в рядом лежащих каталогах:
for /f "delims=" %%a in ('dir /a-d/s/b *.inf') do (
if %debug% EQU 0 @echo installing "%%~a" && pnputil -i -a "%%~a"
)
2. Чуть позже добавлено еще несколько строк для установки:
@echo "*** DTS APO4x Extension Package installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_MSFT_SIGNED_Transsion_EXT_1_11_6_0_beta\dtsapo4Transsionextensionpkg.inf" /install
@echo "*** DTS APO4x Core Package installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_Core_MSFT_SIGNED_1_11_6_0_21H1_21H2_22H2\dtsapo4x64.inf" /install
@echo "*** DTS APO4x Service installation ***"
pnputil -a "%~dp0DTS_UWP_APO4x_RPCService_MSFT_SIGNED_1_11_2_0_21H1_21H2_22H2\dtsapo4xservice.inf" /install
@echo "*** DTS:X Ultra HSA SWC installation ***"
pnputil -a "%~dp0DTSXUltra_UWP_APO4x_HSA_MSFT_SIGNED_1_11_4_0_21H1_21H2_22H2\dtsapo4xultrahsa.inf" /install
Вот я и не могу понять, зачем? По идее эти дрова итак будут добавлены и установлены на первом этапе... Смысл команд вроде как один... Бывают ситуации, когда требуется второй проход?
...
Если что, архивы с дровами здесь - ссылка

[Цитировать]

    kamyshoviy
  • 53
  • Стаж: 10 лет
  • Сообщений: 63
  • Репутация:6

    [+] [-]
101562... Бывают ситуации, когда требуется второй проход?
на живую + оф. драйвера,.. нет, точно нет; да, и, у Майков ни чего похожего ни где не задокументировано (кто найдёт, делись ссылкой). У меня их док от 11.07.2018 за pnputil завалялся (ещё с устаревшим синтаксисом, ну, как с устаревшим, тот, что в батнике), там, тоже, ни слова об этом.
Я в батниках топором, но, при установке на живую, кинуть в CMD стандартную команду мозгов хватит => смущает синтаксис pnputil для свежего железа; /install ввели ни с первой версии 10'ки (но за долго, даже, если от cpu 10-gen считать), а тут "Франкенштейн": -a и /install в одной строке... он (писатель батника) когда шаблон-заготовку сделал?, может и была у M$ когда какая заморочка, кто же теперь вспомнит ...а может, всё проще: "любимый чемодан с тараканами" давно на мороз не выносили.

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 9 лет 2 месяца
  • Сообщений: 527
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
kamyshoviy, спасибо что отозвались.
101567он (писатель батника) когда шаблон-заготовку сделал?
Черт знает, но учитывая что ноуты новые, делались эти наборы недавно (но привычки возможно старые).
101567тут "Франкенштейн": -a и /install в одной строке
Я понял о чем вы, смесь старого синтаксиса и нового, но работать по идее все равно должно, раз уж старый синтаксис еще поддерживается, как я понимаю... по крайней мере встроенная справка эти ключи еще не забыла:

Картинка

...
В общем, главное не мне одному кажется лишним второй проход для некоторых драйверов))

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 9 лет 2 месяца
  • Сообщений: 527
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
Приветствую! Пытался загуглить, но все не то, сложно сформулировать то что мне надо.
Вопрос: возможно ли как-то удалить вывод последней строки? Прописан вывод пустой строки (echo.), нужно следующей командой ее удалить/отменить.
Убрать "echo." не получается, так как там множественное выполнение через цикл.
Это конечно же не такая большая проблема, просто лишний отступ мозолит глаза, не эстетично))
Возможно есть какая-то хитрость? Ничего в голову не приходит.
...
Конструкция примерно такая:
:start
cls
echo 1 - команда
echo 2 - команда
echo 3 - команда
и т.д.
echo n - команда
echo.
set var=&set /p "var=ENTER: "|| GoTo :start
cls
echo.
echo YOUR CHOICE: [%var%]
for %%A in (%var%) do (
  echo.
  SetLocal
  call :%%A
  EndLocal
)
echo.
pause
GoTo :start
:1
echo 1 - Команда такая-то
действия...
exit /b
:2
echo 2 - Команда такая-то
действия...
exit /b
:3
echo 3 - Команда такая-то
действия...
exit
/b
и т.д.
Т.е. в скрипте много меток с номерами, на экран выведены их номера с краткими пояснениями.
Номера нужных "команд" вводятся в строку, выполняются поочередно.
Перед переходом к каждой новой меткой у меня вывод пустой строки (решил что компактнее будет прописать один раз перед переходом, меньше лишних строк, менять это не хотелось бы).
Так же имеется пара комбинаций, типа:
:101
call :41
echo.
call :42
echo.
call :43
echo.
call :52
echo.
call :61
echo.
call :62
echo.
call :65
echo.
call :91
exit /b
Которые как правило сочетаются с отдельными пунктами (типа 101 50 67 ...).
И всегда между выводами на экран отступ ровно в одну строку.
Проблема появилась, когда решил закомпактить комбинированные пункты, как-то так:
:101
for %%A in (41 42 43 52 61 62 65 91) do (
  call :%%A
  echo.
)
exit /b
Ранее, после перехода на последнюю метку я просто не выводил пустую строку, теперь так не получается (если прописать echo. перед call :%%A тоже не то, сверху увеличивается отступ). Возможно вопрос глупый (да и я понимаю, что проблема надумана), и командный процессор не умеет ходить обратно, и затереть эту строку в принципе невозможно, но мало ли...
Ничего не придумал, кроме как писать последний пункт вне цикла:
:101
for %%A in (41 42 43 52 61 62 65) do (
  call :%%A
  echo.
)
  call :91
exit /b
Но это как-то коряво... К тому же скрипт сильно разросся, плюс я бывает очень подолгу им не занимаюсь, так что с моей плохой памятью есть опасения, что этот момент вылетит из головы - не замечу потом строчку за скобкой и пропишу все номера в цикл, останется лишняя команда.
В общем, хотелось бы как-то иначе, чтобы все нужные номера команды были вместе, в скобках... Да и просто интересно, возможно ли такое реализовать (удалить новой командой часть вывода предыдущей команды)

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3817
  • Репутация:127

    [+] [-]
Гыыы. Алгоритм смени. ae
set out=& for %%i in (1 2 3 4 5 6) do (
if defined out (echo.) else set out=1
call :%%i
)

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 9 лет 2 месяца
  • Сообщений: 527
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
Ander_73, Гениально однако aa
Огромнейшее спасибо az

[Цитировать]

    kipjatok001
  • 18520
  • Стаж: 6 лет 6 месяцев
  • Сообщений: 144
  • Репутация:0

    [+] [-]
Всем Привет Ребята.
Подскажите пожалуйста батник. Есть файлы расположенные в разных папках. Нужно чтобы эти папки скопировались в другой диск (буква другая диска). Заранее спасибо aa

Страница 86 из 94


Показать сообщения:    

Текущее время: 24-Ноя 05:47

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы