
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 oldName
es länger als 7 Zeichen ist.
Natürlich wird hiermit der gesamte 123456789.rcv
Dateiname getestet. Da Sie sich tatsächlich nur auf den Dateinamenteil ohne Erweiterung beziehen, können Sie testen , was in diesem Beispiel %%~na
der Fall sein wird .123456789
SET FN=%%~na
if not "!FN:~7!"=="" ()
(oder einfach auf eine Länge von 11 testen)