
ファイルが長すぎる場合に実行するスクリプトが必要です (ファイル名を変更します)。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 かどうかをテストするだけ)