
Мне нужен скрипт, который будет запускаться всякий раз, когда файл слишком длинный (переименовать файл. Допустим, файл rcv помещен в папку и назван 123456789.rcv. Но программа, которую мы используем для его извлечения, не примет его, потому что имя слишком длинное. Поэтому я создал скрипт для переименования файла путем удаления двух цифр. Но мне нужно, чтобы скрипт запускался только тогда, когда его длина превышает 7 цифр. Как написать оператор IF для этого, если он есть? Вот что у меня есть на данный момент.
@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
)
решение1
if not "!oldName:~7!"=="" ()
будет true
, если oldName
длина превышает 7 символов.
Конечно, это проверяет все 123456789.rcv
имя файла. Поскольку вы на самом деле ссылаетесь только на часть имени файла без расширения, вы можете проверить %%~na
, что будет 123456789
в этом примере.
SET FN=%%~na
if not "!FN:~7!"=="" ()
(или просто проверьте длину 11)