Cari dan ganti file pdf massal "timpa" kembali ke pohon direktori di Windows

0

Saya memiliki ratusan file PDF yang saya gunakan aplikasi untuk menerapkan tanda air, namun, aplikasi hanya berhasil menerapkan tanda air dengan menerapkan salinan setiap file pdf dari pohon direktori dan untungnya nama file dipertahankan sama untuk masing-masing. Ini menyebabkan kekacauan besar karena akan susah untuk mulai melakukan pencarian, menyalin dan mengganti file dengan file kembali ke pohon direktori asli.

Apakah ada kemungkinan untuk memiliki skrip batch untuk melakukan proses ini?

Tazo
sumber
Cara terbaik Anda adalah mempelajari manual untuk aplikasi yang Anda gunakan dan mencari tahu cara mendapatkannya untuk melakukan edit di tempat. Jika Anda ingin memperbaiki apa yang sudah Anda lakukan maka Anda harus memberi tahu kami bagaimana program melakukan ini. Bagaimana program memastikan bahwa file tidak ditimpa? Apakah itu membuat pohon dir duplikat? Apakah itu menambahkan path ke setiap nama file? Apakah itu hanya menambahkan GUID acak ke setiap file?
krowe2
@ krowe2 software apa pun yang digunakan, untuk beberapa file tempat saya melakukan modifikasi maka saya menyimpan file dengan nama yang sama di folder tempat kerja, maka saya melakukan ini ratusan kali. Dan sekarang saatnya untuk mengganti semua file ini kembali ke asalnya.
Tazo

Jawaban:

0

Ini bukan layanan penulisan skrip dan Anda mungkin sudah bisa menangani ini secara manual sekarang, tetapi ini harus dilakukan:

@echo off
SETLOCAL ENABLEEXTENSIONS

SET OUTFILE=%~dp0
SET OUTFILE=%OUTFILE%filematch_go.bat

echo.
echo ----------------------------------
echo File Name Match in Dir Tree
echo ----------------------------------
echo.
echo This script will create the code for another batch script which you may 
echo run in order to replace all files under the Destination Path with those 
echo found in the Source Folder (but only if the file names match; no other 
echo checks are done). Since some hand editing is probably going to need to 
echo be made we'll just output the code for another script which will complete 
echo the task of doing the overwrites. This file will be saved to the same 
echo directory as this script with the filename: filematch_go.bat
echo.
echo Parameters
echo ----------
echo.
echo Source Folder: %1
echo Destination Path: %2
echo Output File: %OUTFILE%
echo.

SET ATTR=%~a1
SET DIRATTR=%ATTR:~0,1%
IF /I NOT "%DIRATTR%"=="d" GOTO SRCERR

SET ATTR=%~a2
SET DIRATTR=%ATTR:~0,1%
IF /I NOT "%DIRATTR%"=="d" GOTO DSTERR

PAUSE
echo @ECHO OFF > %OUTFILE%

FOR /f "tokens=*" %%S IN ('dir /S /B "%1*.txt"') DO (
    FOR /f "tokens=*" %%D IN ('dir /S /B "%2*.txt"') DO (
        IF /I "%%~nxS"=="%%~nxD" (
            echo COPY "%1%%~nxS" "%2%%~nxD" >> %OUTFILE%
        )
    )
)

GOTO ENDSCRIPT
:SRCERR
echo.
echo ERROR: The given source folder is not a valid directory.
GOTO ERROR

:DSTERR
echo.
echo ERROR: The given destination path is not a valid directory.

:ERROR
echo.
echo An error has occurred; script halted.
echo.

:USEAGE
echo.
echo Useage Instructions:
echo.
echo     filematch.bat ^<source^> ^<destination^>
echo.
echo   source        The folder where the new files are located
echo.
echo   destination   The root path of the directory tree where the files are 
echo                 to be placed.
echo.

:ENDSCRIPT
echo Done.
krowe2
sumber