Selamat pagi semua!

Saya telah mengerjakan verifikasi dan memindahkan skrip untuk cadangan kami di kantor saya. Semuanya berfungsi dengan baik kecuali tampaknya hanya memindahkan file pertama dalam file .txt yang dibacanya. Saya membutuhkannya untuk memindahkan semua file yang terdaftar di lokasi smc_raw.txt ke yang ditentukan dalam skrip.

Terima kasih!

@echo off
SET /P dir=Input Start File:
echo.
"C:\Program Files\StorageCraft\spx\image.exe" qp %dir% %1 f=fsr “d=$n” > Z:\StorageCraft\SMC\smc_raw.txt
setlocal
SET LOGFILE=Z:\StorageCraft\SMC\smc_log.txt
SET /P AREYOUSURE=Raw Data has been saved! Check the smc_raw.txt File! Do you want to continue the SMC Copy(Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO END
REM Use /f to read the contents of a file, and %%i to reference the line you just read:
for /f %%i in (Z:\StorageCraft\SMC\smc_raw.txt) do (
    move %%i Z:\StorageCraft\SMC >nul 2>&1
    if errorlevel 1 (
        echo %%i : Move failed >> %LOGFILE%%
    ) else (
        echo %%i : Move successful >> %LOGFILE%
    )
)
break > Z:\StorageCraft\SMC\smc_raw.txt
setlocal

CONTOH smc_raw.txt

"Z:\StorageCraft\W10SOLID21VM\C_VOL-b001.spf" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i064-cd-cm-cr.spi" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i094-cd-cm.spi" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i099-cd-cm.spi" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i102-cd-cw.spi" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i109-cd-cw.spi" "Z:\StorageCraft\W10SOLID21VM\C_VOL-b001-i116-cd-cw.spi"
1
MrAdmin 20 September 2019, 16:02

1 menjawab

Jawaban Terbaik

Karena Anda tidak memiliki item dalam format daftar, kami cukup memaksanya menjadi format daftar dengan menambahkan for lain untuk mengambil konten file dan menyimpannya sebagai variabel:

@echo off
SET /P dir=Input Start File:
echo(
"C:\Program Files\StorageCraft\spx\image.exe" qp %dir% %1 f=fsr “d=$n” > Z:\StorageCraft\SMC\smc_raw.txt
SET LOGFILE=Z:\StorageCraft\SMC\smc_log.txt
SET /P AREYOUSURE=Raw Data has been saved! Check the smc_raw.txt File! Do you want to continue the SMC Copy(Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO END
REM Use /f to read the contents of a file, and %%i to reference the line you just read:
for /f "delims=" %%a in (Z:\StorageCraft\SMC\smc_raw.txt) do set "list=%%a"
for %%i in (%list%) do (
    move %%i Z:\StorageCraft\SMC >nul 2>&1
    if errorlevel 1 (
        echo %%i : Move failed >> %LOGFILE%%
    ) else (
        echo %%i : Move successful >> %LOGFILE%
    )
)
break > Z:\StorageCraft\SMC\smc_raw.txt

Saya tidak dapat menguji ini karena saya tidak menggunakan laptop saya, jadi Anda harus mengujinya untuk kami.

0
Gerhard 20 September 2019, 14:26