Ich habe mehrere .pdf- und .tex-Dateien in einem bestimmten Ordner „ABC“.
Sie sind alle nach dem Schema benannt
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
Csteht in diesem Schema für Kapitel,Sfür Abschnitt undSSfür Unterabschnitte. Im Ordner ABC habe ich also auch den Ordner für jedes Kapitel, einfach benanntC01,CO2und so weiter. In jedem Kapitelordner habe ich einen Ordner namensBilder.
Könnte jemand bitte ein Batch-Skript schreiben, damit ich alle .tex- und .pdf-Dateien in die entsprechendenBilder-Ordner, würde hin und her usw. C04S01SS02_More_words.pdf
verschoben werden ?C04/Pictures
C01S02_Word.pdf
C01/Pictures
Notiz:natürlich habe ich das schon gegoogeltaber bisher konnte ich die vielen Bits nicht in ein funktionierendes Skript umwandeln. Ich möchte keine T&E-Läufe mehr machen. :/
Antwort1
Erstellen Sie diese Batchdatei:
@echo off
for %%F in (*.pdf *.tex) do call :subr "%%F"
exit /b
:subr
set filename=%1
move %1 %filename:~1,3%\Pictures
exit /b
Anmerkungen:
for %%F in (*.pdf *.tex) do …
führt die folgende Anweisung einmal für jeden Dateinamen aus, der mit*.pdf
oder übereinstimmt*.tex
, wobei%%F
auf den Dateinamen gesetzt ist.call :subr "%%F"
ruft die unteren drei Zeilen des Skripts auf, wobei das erste Argument (%1
) auf"%%F"
(den Dateinamen in Anführungszeichen) gesetzt ist.exit /b
beendet das Skript, ohne das Eingabeaufforderungsfenster zu schließen.set filename=%1
kopiert das Dateinamenargument in diefilename
Variable.move
verschiebt eine Datei.%variable:~start,len%
nimmt die angegebene Teilzeichenfolge von (das erste Zeichen ist #0), ebenso die ersten drei Zeichen von . (Die Zählung beginnt bei 0; ich verwende 1, um das zu überspringen .)%variable%
%filename:~1,3%
%filename%
"
exit /b
kehrt aus der Subroutine zurück.