在 Windows 7 上获取使用文件长度运行的脚本?

在 Windows 7 上获取使用文件长度运行的脚本?

我需要一个脚本,当文件太长时运行(重命名文件)。假设将一个 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)

相关内容