Как переместить несколько файлов в новый каталог - PullRequest
1 голос
/ 20 сентября 2019

Доброе утро всем!

Я работал над сценарием проверки и переноса наших резервных копий в моем офисе.Все прекрасно работает, за исключением того, что кажется, что он перемещает только первый файл в файле .txt, из которого он читает.Мне нужно, чтобы переместить все файлы, перечисленные в расположении smc_raw.txt, в файл, указанный в скрипте.

Спасибо!

@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

ПРИМЕР 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 Ответ

0 голосов
/ 20 сентября 2019

Поскольку у вас нет элементов в формате списка, мы просто принудительно используем его в формате списка, добавив еще один for, чтобы получить содержимое файла и сохранить его в виде переменной:

@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

Я не могу проверить это, поскольку я не на своем ноутбуке, поэтому вы должны проверить это для нас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...