如何在多個目錄中建立單一檔案的多個檔案?

如何在多個目錄中建立單一檔案的多個檔案?

您好,我正在嘗試在多個目錄中建立單一檔案的多個副本?

例如,我有 6 個資料夾,每個資料夾中都有一個名為 lp.html 的文件,如何執行批次以在每個目錄中建立所述文件的 100 個副本。

我的程式碼創建了多個副本,但我必須一份一份地完成,當我有超過 100 個資料夾要做時,這會變得乏味。

那我怎麼才能轉動這個批次檔來完成我想要完成的任務。 [我正在執行 Windows 7]

新增資訊:所有資料夾都位於同一父資料夾中,資料夾中的檔案彼此不同

   @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

答案1

使用 forfiles 指令。執行 forfiles /?求助。

如果您擔心並行處理副本,您可以建立 6 個不同的腳本,每個目錄一個,然後從單一腳本執行它們,start scriptname.bat這樣就不會像以前那樣等待傳回值call

答案2

嘗試這個。這並不漂亮,因為這個*$#?編輯器遺失了縮排、換行符等。

--- 修改後的腳本

@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

相關內容