我需要一个脚本,当文件太长时运行(重命名文件)。假设将一个 rcv 文件放入一个文件夹中,其名称为 123456789.rcv。但是我们用来抓取它的程序不会接受它,因为名称太长。所以我编写了一个脚本,通过删除 2 个数字来重命名文件。但我只需要在文件长度超过 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)