在 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)

相關內容