Ein Skript mithilfe der Dateilänge unter Windows 7 ausführen?

Ein Skript mithilfe der Dateilänge unter Windows 7 ausführen?

Ich brauche ein Skript, das ausgeführt wird, wenn eine Datei zu lang ist (die Datei umbenennen). Nehmen wir an, eine Empfangsdatei wird in einen Ordner gelegt und 123456789.rcv genannt. Aber das Programm, das wir zum Abrufen verwenden, nimmt sie nicht an, weil der Name zu lang ist. Also habe ich ein Skript geschrieben, um die Datei durch Löschen von 2 Zahlen umzubenennen. Aber ich brauche das Skript nur, wenn es länger als 7 Ziffern ist. Wie wird die IF-Anweisung dafür geschrieben, falls es eine gibt? Hier ist, was ich bisher habe.

@echo off
setlocal enabledelayedexpansion
for %%a in (*.rcv) do (
set oldname=%%a

rem     GRABS FIRST 5 Characters of file name
set first=!oldName:~0,5!

rem     GRABS all but first 7 characters of file name
set newName=!oldName:~7!

rem     ADDS two stings together to create new file name
Set newName2=!first!!newName!

rem     RENAMES old file name to new file name
Ren "!oldName!" "!newName2!"

timeout /t 10
quite
)

Antwort1

if not "!oldName:~7!"=="" ()

wird sein true, wenn oldNamees länger als 7 Zeichen ist.

Natürlich wird hiermit der gesamte 123456789.rcvDateiname getestet. Da Sie sich tatsächlich nur auf den Dateinamenteil ohne Erweiterung beziehen, können Sie testen , was in diesem Beispiel %%~nader Fall sein wird .123456789

SET FN=%%~na
if not "!FN:~7!"=="" ()

(oder einfach auf eine Länge von 11 testen)

verwandte Informationen