Frage

Ich habe Leute gesehen, die das in Perl gemacht haben, aber ich frage mich, ob es eine Möglichkeit gibt, es per Batch zu machen?Es ist in Windows integriert, daher denke ich, dass es nützlicher wäre zu wissen, wie man das mit einem Batch-Skript macht.Es erfordert keine Installation auf einem Computer.

Ein Beispiel für einen Eingabenamen: myFile_55 Ein Beispiel für ein Ausgabemuster:ändern myFile zu picture und reduziere die Anzahl um 13.Eine Beispielausgabe: picture_42.

Wie würden Sie das angehen?Ich kenne einen Batch-Befehl zum Umbenennen:

ren myFile_55 picture_42.

Also, wenn ich eine Datei namens habe renamer.bat, Ich kann Folgendes hinzufügen:

for /r %%x in (%1) do ren "%%x" %2.

Dann kann ich diesen Befehl eingeben:

renamer.bat myfile* picture*.

Ich weiß jedoch nicht, wie ich die Zahlen reduzieren soll.

Keine korrekte Lösung

Andere Tipps

Sie können wahrscheinlich den ursprünglichen Dateinamen durch eine for-Schleife führen und den Namen und die Nummern extrahieren, die Zahlen berechnen und dann mit dem neuen Namen und der neuen Nummer wieder einstecken.Solange das Dateinamenformat ist name_number sie können dies verwenden:

REM Allow for numbers to be iterated within the for-loop i.e. the i - z
SETLOCAL ENABLEDELAYEDEXPANSION
SET i=0
SET z=13
SET newName=picture
SET workDir=C:\Path\To\Files

REM Given that filenames are in the format of 'Name_number', we're going to extract 'number
REM and set it to the i variables, then subtract it by 13, then rename the original file
REM to what the newName_x which if the filename was oldName_23 it would now be newName_10
FOR /r %%X in (%1) do (
  FOR /F "tokens=1-2 delims=_" %%A IN ("%%X") DO (
    SET i=%%B
    SET /A x=!i! - %z%

    REM ~dpX refers to the drive and path of the file
    REN "%%~dpX\%%A_%%B" "%newName%_!x!"
  )
)

BEARBEITEN:Bearbeitet die REN befehl, um das Laufwerk und den Pfad der Originaldatei einzuschließen.Von Kleinbuchstaben x in Großbuchstaben X geändert, um nicht zu verwirren %%~dpX.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top