¿Obtener una secuencia de comandos para ejecutar utilizando la longitud del archivo en Windows 7?

¿Obtener una secuencia de comandos para ejecutar utilizando la longitud del archivo en Windows 7?

Necesito ejecutar un script cada vez que un archivo sea demasiado largo (cambie el nombre del archivo. Digamos que un archivo rcv se coloca en una carpeta y se llama 123456789.rcv. Pero el programa que usamos para capturar esto no lo aceptará porque el nombre es demasiado largo. Así que hice un script para cambiar el nombre del archivo eliminando 2 números, pero solo necesito que el script se ejecute cuando tenga más de 7 dígitos. ¿Cómo se escribe la declaración IF para esto si hay una? tener hasta ahora.

@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
)

Respuesta1

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

será truesi oldNametiene más de 7 caracteres.

Por supuesto, esto prueba todo el 123456789.rcvnombre del archivo. Dado que en realidad parece que te refieres solo a la parte del nombre del archivo sin extensión, puedes probar %%~na, que será el caso 123456789en este ejemplo.

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

(o simplemente pruebe con una longitud de 11)

información relacionada