Como posso criar vários arquivos de um único arquivo em vários diretórios?

Como posso criar vários arquivos de um único arquivo em vários diretórios?

Olá, estou tentando criar várias cópias de um único arquivo em vários diretórios?

por exemplo, tenho 6 pastas com um único arquivo em cada pasta chamada lp.html. Como posso executar um lote para criar 100 cópias desses arquivos em cada diretório.

O código que tenho cria várias cópias, mas tenho que fazer isso uma por uma e fica entediante quando tenho mais de 100 pastas para fazer.

Então, como posso transformar esse arquivo em lote para fazer o que estou tentando realizar. [Estou executando o Windows 7]

INFORMAÇÕES ADICIONADAS: Todas as pastas estão na mesma pasta pai, os arquivos nas pastas são diferentes uns dos outros

   @echo off

   for /L %%i IN (1,1,100) do call :docopy %%i
   goto end

   :docopy
   set FN=00%1
   set FN=%FN:~-3%

   copy source-file.html poll%FN%.html

   :end

Responder1

Use o comando forfiles. Execute forfiles /? para ajuda.

Se você está preocupado em processar as cópias em paralelo, você pode criar 6 scripts diferentes, um para cada diretório, e então executá-los todos a partir de um único script usando start scriptname.bato qual não esperará por um valor de retorno como callfaz.

Responder2

Experimente isso. Não é bonito, porque isso *$#? o editor perdeu o recuo, quebras de linha, etc.

--- SCRIPT REVISADO

@echo off

setlocal

set ROOT_DIR=c:\temp\test

for /f "tokens=*" %%D in ('dir /ad /b "%ROOT_DIR%"') do call :PROCESS_DIR "%ROOT_DIR%" "%%D"

endlocal

goto END


:PROCESS_DIR

set PD_ROOT=%1
set PD_ROOT=%PD_ROOT:"=%
set PD_DIR=%2
set PD_DIR=%PD_DIR:"=%
set PD_FIRST_FILE=
set PD_SOURCE_FILE=

REM ***
REM *** GET THE NAME OF THE FIRST FILE IN THIS FOLDER.
REM ***
for /f "tokens=*" %%F in ('dir /o-n /b "%PD_ROOT%\%PD_DIR%"') do set PD_FIRST_FILE=%%F

if "%PD_FIRST_FILE%" == "" (
    echo WARNING : No files found in [%PD_DIR%] - skipping.
    goto END
    )

set PD_SOURCE_FILE=%PD_ROOT%\%PD_DIR%\%PD_FIRST_FILE%

REM ***
REM *** CREATE FILES.
REM ***
for /l %%I in (1,1,100) do call :CREATE_FILE_COPY "%PD_ROOT%\%PD_DIR%" "%PD_SOURCE_FILE%" 00%%I

goto END

:CREATE_FILE_COPY

set CFP_DIR=%1
set CFP_DIR=%CFP_DIR:"=%
set CFP_FILE=%2
set CFP_INDEX=%3
set CFP_FILE_NO_EXT=

REM ***
REM *** GET FILE NAME WITHOUT EXTENSION.
REM ***
for /f %%F in ("%CFP_FILE%") do set CFP_FILE_NO_EXT=%%~nF

REM ***
REM *** COPY THE FILE.
REM ***
copy /y %CFP_FILE% "%CFP_DIR%\%CFP_FILE_NO_EXT%.%CFP_INDEX:~-3%

goto END


:END

informação relacionada