Батник автоматического бэкапа сейвов игр

  • Автор темы Автор темы Y2k18
  • Дата начала Дата начала

Переводчик Google

разве утилита прописана в PATCH? Чем менее подробна задача, тем хуже результат, бесконечный цикл, так и задуман?
Я пытаюсь сделать батник, который будет запускаться с системой через планировщик (независимо от способа запуска системы - или это будет запуск, или выход из гибернации), мониторить появление процесса эмулятора после первого ручного запуска, запускать процесс копирования через промежуток времени и перезапускать эмулятор, если эмулятор будет крашиться. В общем-то раньше в треде gpt дал рабочий вариант, но хотелось бы скрыть окно консоли, чтобы во время работы батника он висел в диспетчере задач, а не маячил развёрнутым/свёрнутым на рабочем столе. Я попробовал nircmd всунуть вместо /start, и получил бесконечный запуск эмулятора.

Разумеется, я не задумывал бесконечный цикл и в корне не догоняю, как от него избавиться. Про PATCH я тоже не совсем понял, погуглил - вроде надо просто закинуть nircmd.exe в каталог Windows, и всё. Видимо, батник что-то делает не так, только не могу понять что именно.

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

:: Установите путь к Xenia
set "XENIA_PATH=G:\Soft\XeniaCanary\xenia_canary.exe"
set "source=G:\Soft\XeniaCanary\content"
set "destination=D:\Saves\XBOX360"
set "process_name=xenia_canary.exe"

:: Ожидание ручного запуска Xenia
start /B "" cmd /c "echo %time:~,-3% Пожалуйста, запустите Xenia вручную."
:waitForXenia
tasklist /FI "IMAGENAME eq %process_name%" 2>NUL | find /I /N "%process_name%" >NUL
if "%ERRORLEVEL%"=="0" (
    goto monitorXenia
) else (
    timeout /t 5 > NUL
    goto waitForXenia
)

:monitorXenia
:: Мониторинг Xenia
:checkXenia
tasklist /FI "IMAGENAME eq %process_name%" 2>NUL | find /I /N "%process_name%" >NUL
if "%ERRORLEVEL%"=="0" (
    timeout /t 10 > NUL
    goto checkXenia
) else (
    echo %time:~,-3% Xenia закрыта. Перезапуск...
    start "" "%XENIA_PATH%"
    timeout /t 10 > NUL
    goto checkXenia
)

:: Копирование всех папок каждые 30 минут
:copyFolders
for /d %%D in ("%source%\*") do (
    set "folderName=%%~nxD"
    set "shortName=!folderName:~0,8!"  rem Получаем первые 8 символов имени папки
    set "destFolder=!shortName! !folderName:~9!"  rem Остальная часть имени после первых 8 символов
    set "destPath=%destination%\!destFolder!"  rem Формируем путь назначения
    rem Копируем папку, если она существует в каталоге назначения
    if exist "!destPath!" (
        robocopy "%%D" "!destPath!" /E /COPY:DAT /MINAGE:1 /XD "Thumbs.db" /R:0 /W:0
    )
)
echo %time:~,-3% Ожидание 30 минут перед следующим выполнением...
timeout /t 1800 > NUL  rem 1800 секунд = 30 минут
goto copyFolders

endlocal
 
Последнее редактирование:
Просто закинуть не получится, нужно или указывать путь к файлу или танцевать
 
Просто закинуть не получится, нужно или указывать путь к файлу или танцевать

Добавление пути к файлу в переменную PATH в Windows​


Да, вы правы. Чтобы запустить программу из командной строки без указания полного пути к файлу, необходимо добавить путь к исполняемому файлу в переменную окружения PATH. Это позволяет системе находить нужные программы, когда вы вводите их имя в командной строке.

Вот пошаговая инструкция, как это сделать:

Шаги для добавления пути в переменную PATH​


1. Открытие настроек переменных окружения:
- Нажмите правой кнопкой мыши на "Этот компьютер" или "Мой компьютер" на рабочем столе или в проводнике.
- Выберите "Свойства".
- Нажмите на "Дополнительные параметры системы" (обычно слева).
- В открывшемся окне нажмите на кнопку "Переменные среды".

2. Редактирование переменной PATH:
- В разделе "Системные переменные" найдите переменную с именем Path и выделите её.
- Нажмите "Изменить".
- В открывшемся окне вы можете добавить новый путь, нажав "Создать" и затем введя путь к папке, где находится ваш исполняемый файл.

3. Сохранение изменений:
- После добавления пути нажмите "ОК" в каждом из окон, чтобы сохранить изменения.

4. Проверка:
- Откройте командную строку (cmd) и введите имя вашей программы. Если всё сделано правильно, программа должна запуститься.

Пример добавления пути​


Допустим, вы хотите добавить путь к папке C:\MyPrograms. Просто добавьте этот путь в переменную Path, и затем вы сможете запускать программы из этой папки, просто вводя их имя в командной строке.

Следующие шаги​


Если у вас возникли трудности на каком-то этапе или есть вопросы по конкретной программе, не стесняйтесь задавать их. Также, если вы хотите узнать о других способах управления переменными окружения, дайте знать!
 
Просто закинуть не получится, нужно или указывать путь к файлу или танцевать
Закинул nircmd в каталог винды, добавил его в PATH, проверил - через run и cmd запускается. Взял последнюю версию кода с nircmd из этого сообщения и... ничего. консольное окно не скрывается.
 
Назад
Сверху Снизу