
我需要一個腳本來運行每當一個檔案太長(重命名該檔案。假設一個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)