Lo script, mi pare, salva il file in …old, poi lancia pdfcrop.exe usando lo steso nome per il file in entrate e per il file in uscita:
`
@echo off
echo Cropping…
FOR %%A IN (%*) DO (
echo %%A
IF /I %%~xA==.pdf (
copy /Y %%A “%%~nA.pdf.old”
cd “%%~dA%%~pA”
cd
pdfcrop.exe –margins 1 “%%~nA.pdf” “%%~nA.pdf”
cd
)
)
pause
`
Mi sembra che l’errore sia lì, devono essere due nomi distinti ed eventualmente, eseguito il suo compito, lo script potrebbe anche cancellare i vecchi file e rinominare il nuovo col nome del vecchio, sempre che pdfcrop sia terminato col codice 0.
Non ho una macchina Windows sotto mano, e quindi non posso provare nessun codice Windows, ma direi che forse il problema è lì.
Inoltre non capisco i vari comandi cd che ci sono, non sono troppi e alla fine il file non si trova più nella cartella su cui sta lavorando pdfcrop?
Probabilmente le mie sono osservazioni sceme, perché dall’ultima volta che ho scritto uno script bat per Windows sono passati parecchi anni. Comunque rivedrei lo script; il fatto che uno script scritto in modo simile funzioni su Linux, non è detto che, mutatis mutandis, funzioni anche su Windows.