Încerc să găsesc o modalitate de a avea un script batch să suprascrie fiecare instanță a unui fișier diferit de zero octeți din interiorul unui anumit director și al subfolderelor acestuia. Bănuiesc că, deoarece caut un fișier diferit de zero, probabil că l-aș putea bucla cu un escape dacă nu găsește niciun fișier de dimensiune diferită de zero?
Exemplu, suprascrieți fiecare instanță de example.txt unde este o dimensiune a fișierului diferită de zero:
D:\
\---SubFolder1
| exemplu.txt <10 octeți>
|
\---Subdosar2
| exemplu.txt <0 octeți>
|
\---Subsubdosar1
exemplu.txt <20 octeți>
În exemplu, D:\Subfolder1\example.txt și D:\Subfolder2\Subsubfolder1\example.txt ar fi suprascrise, dar D:\Subfolder2\example.txt nu ar fi schimbat.
Mulțumim lui @NiKiZe pentru tot ajutorul tău!
Cod de lucru:
@ECHO OPRIT
SET DPATH=%~dp0
PENTRU /R „%DPATH%” %%F IN (*** VEZI MAI JOS) DO IF %%~zF GTR NEQ 0 CALL:NonEmptyFile „%%~F”
GOTO :EOF
:NonEmptyFile
ECHO Am primit un fișier care nu este gol: %1
Apel: EOF
*** Înlocuiți cu numele fișierului pe care doriți să-l înlocuiți, asigurați-vă că utilizați undeva un metacar cu un singur caracter (l-am folosit în extensie - de exemplu, dacă caut exemplu.txt, am înlocuit * cu example.t ?t)