
Eu preciso de um script para ser executado sempre que um arquivo for muito longo (renomeie o arquivo. Digamos que um arquivo rcv seja colocado em uma pasta e seja nomeado 123456789.rcv. Mas o programa que usamos para pegá-lo não aceitará porque o nome é muito longo. Então, criei um script para renomear o arquivo excluindo 2 números, mas só preciso que o script seja executado quando tiver mais de 7 dígitos. Como a instrução IF é escrita para isso, se houver uma aqui? tem até agora.
@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
)
Responder1
if not "!oldName:~7!"=="" ()
será true
se oldName
tiver mais de 7 caracteres.
Claro, isso testa todo o 123456789.rcv
nome do arquivo. Como você realmente parece se referir apenas à parte do nome do arquivo sem extensão, você pode test %%~na
, que estará 123456789
neste exemplo.
SET FN=%%~na
if not "!FN:~7!"=="" ()
(ou apenas teste para um comprimento de 11)