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!"=="" ()

7 文字を超えるtrue場合は、次のようになります。oldName

もちろん、これは123456789.rcvファイル名全体をテストします。実際には拡張子なしのファイル名部分のみを参照しているようなので、この例では%%~naをテストできます。123456789

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

(または長さが 11 かどうかをテストするだけ)

関連情報