Pencadangan perintah batch dalam folder yang berbeda

-1

Saya mencoba untuk membuat cadangan untuk permainan assassins creed 3 save untuk setiap x menit, tetapi folder & file-nya menimpa setiap kali, tolong beri saya kode sehingga setiap cadangan akan berada di folder yang berbeda. Maaf untuk bahasa Inggris yang buruk.

cls
@echo off
color 0C
echo.
echo Start Backup
echo.
pause
:start
cls
echo.
echo Backup started
echo.
xcopy "source" "destination"  /s /y /e
timeout /t 5
goto start
Prasanna Kumar
sumber

Jawaban:

1

Anda dapat menggunakan timeuntuk membuat nama direktori:

set butime=%time:~0,2%%time:~3,2%%time:~6,2%
mkdir %butime%
WireGuy
sumber
Saya mencobanya sekarang tetapi masalahnya adalah folder sedang dibuat di desktop
Prasanna Kumar
Oh maaf itu berhasil saya salah ketik waktu, bukan waktu, terima kasih.
Prasanna Kumar
1

Jika Anda tidak keberatan membuat nama direktori berdasarkan tanggal dan waktu (yang saya pikir Anda mungkin tidak akan keberatan dalam situasi ini), maka mungkin file batch ini akan berfungsi. Juga, ini akan membantu mengotomatiskannya sedikit. Alasan saya melakukan pengecekan untuk apakah game berjalan adalah karena tidak ada alasan nyata untuk membuat cadangan saat game dimatikan untuk sementara waktu.

  1. Buat file batch ini:

    @echo off
    setlocal enabledelayedexpansion enableextensions
    cls
    rem Color is taken care of in the task call.
    
    %= ============================================================== =%
    rem * Take this section out if you want it to make backups even when
    rem * you're not playing the game.
    
    echo Checking if game is running...
    md "%tmp%\cmdtmp"
    set tmpdir=%tmp%\cmdtmp
    tasklist /fo csv /nh /fi "imagename eq %NameOfACExectuable%" /fi "status eq running" > "%tmpdir%\tmp.txt"
    set /p tasklist= < "%tmpdir%\tmp.txt"
    del "%tmpdir%\tmp.txt"
    rd "%tmpdir%" /s /q
    set tasklist=
    set tmpdir=
    
    %= ============================================================== =%
    
    set image=
    for /f "tokens=1 delims=," %%I in (!tasklist!) do (
        set tmpvar=%%~I
        for %%J in (!tmpvar!) do if not defined image set image=%%~xJ
        rem * The file extension needs checked so image doesn't become
        rem * set with output saying that no files have been found.
        rem * This section has to be a bit complicated because there
        rem * isn't any straightforward way to get an extension out of
        rem * an environment variable.
    )
    if not defined image goto :eof
    
    echo.
    echo Backup has now started.
    
    rem * This is to ensure that the date/time format is consistent
    rem * (we likely don't use the same date/time format).
    set X=
    for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
    set datetime=!X:~0,4!!X:~4,2!!X:~6,2!_!X:~8,2!!X:~10,2!!X:~12,2!
    
    set bkupdir="%WhereverYouWantToMakeTheBackup%"
    
    md "%bkupdir%\savebackup_!datetime!"
    set thisbkupdir="%bkupdir%\savebackup_!datetime!"
    
    xcopy "%WhereYourACGameSaveIs%" "!thisbkupdir!" /e /y /c /q
    
    echo.
    echo Backup completed. Exiting...
    timeout /t 5 /nobreak
    exit
    
  2. Buat tugas (ada dua rute untuk melakukan ini):

    1. Melalui Penjadwal Tugas (Anda mungkin akan memiliki item menu diterjemahkan ke dalam bahasa asli Anda jika Microsoft memiliki akal sama sekali):
      1. Ketik taskchd.msc di bilah pencarian di menu mulai dan tekan Enter.
      2. Klik "Perpustakaan Penjadwal Tugas" di sidebar kiri dan kemudian klik "Buat tugas baru" di sidebar kanan.
      3. Ketikkan nama yang Anda inginkan untuk tugas tersebut.
      4. Klik tab "Pemicu" dan klik "Baru ..." di bagian bawah.
      5. Pilih "Saat tugas / modifikasi" di menu tarik-turun "Mulai tugas".
      6. Di area Opsi Lanjut, centang kotak yang mengatakan "Ulangi tugas setiap:" dengan opsi berikut:
        • X menit (pilihan Anda di sini)
        • Durasi: Tanpa batas
      7. Klik tab "Tindakan" dan klik "Baru ..." di bagian bawah.
      8. Pilih "Mulai program" di menu tarik-turun "Aksi", jika belum dipilih.
      9. Dalam kotak "Program / skrip:", ketik %comspec% /t:0C /c "Drive:\Dir\To\YourBatchFile.bat".
      10. Di tab "Ketentuan", pastikan tidak ada yang dipilih. Beberapa opsi, jika dicentang, akan dengan cepat dan sepenuhnya meniadakan poin dari semua pekerjaan ini, terutama jika Anda menggunakan laptop dan keduanya "Mulai hanya jika komputer menggunakan daya AC" dan "Berhenti jika komputer beralih untuk daya baterai "diperiksa.
      11. Tekan "OK" di bagian bawah untuk menyimpan tugas.
    2. Melalui baris perintah
      1. Ketik ini ke dalam Command Prompt dan tekan Enter (Ganti% DirToBat% dengan direktori aktual):
        schtasks / create / tn WhatYouWantToNameYourTask "/ tr" '% comspec%' / t: 0C / c \ "% DirToBat% \" "/ sc minute / mo X
        
        Harap dicatat bahwa kutipan dilewatkan sebagai argumen untuk% comspec% HARUS lolos seperti yang ditunjukkan. Juga, jumlah menit di sini adalah sesuatu yang Anda dapat lebih mengontrol daripada di UI.

Satu item catatan: File batch ditulis untuk berhenti segera setelah melihat bahwa game tidak berjalan, dan itu membuat cek sebelum membuat persiapan untuk membuat cadangan apa pun. Jika Anda tidak menginginkannya, maka lepaskan bagian yang ditandai dengan tanda sama dengan yang dikomentari:%= ============= =%

Juga, silakan menerjemahkan echokalimatnya jika Anda mau.

Isiah Meadows
sumber