[英]File name with vbs scripts
我想添加一個字符文件名。 例如
123456.jpg --> 1234506.jpg
ABCDEF.jpg --> ABCDE0F.jpg
原始文件6 charecters
新文件名7 charecter
個字符(我要為所有文件名添加0,請注意0個字符后有一個字符。)
對於此過程batch file or vbs
問候,
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims=" %%a in (
'dir /b /a-d ^|
findstr /r /b
/c:"[^.][^.][^.][^.][^.][^.]\."
/c:"[^.][^.][^.][^.][^.][^.]$"
'
) do (
set "fileName=%%a"
setlocal enabledelayedexpansion
for %%b in ("!filename:~0,5!0!filename:~5!") do endlocal & if not exist "%%~b" echo ren "%%a" "%%~b"
)
這使用dir
命令檢索文件列表,並使用findstr
進行過濾,僅獲取文件名中包含6個字符的文件。 對於找到的每個文件,將文件名檢索到一個變量中,並執行子字符串操作以組成新名稱。
為避免文件名中出現驚嘆號問題,我們需要啟用延遲擴展以讀取變量,但禁用擴展以執行命令。 這是第二個for
的原因,啟用延遲擴展,讀取所需的值並將其存儲在for
命令的可替換參數內,禁用延遲的擴展,現在,在沒有驚嘆號的情況下,執行所需的命令。
ren
命令僅回顯到控制台。 如果輸出正確,請刪除echo
以執行重命名操作
這是使用VBScript和FileSystemObject
。 該腳本將需要與文件位於同一文件夾中。 否則,您將必須使用文件的完整路徑。
' Files to update...
a = Array("123456.jpg", "ABCDEF.jpg")
With CreateObject("Scripting.FileSystemObject")
For i = 0 To UBound(a)
' Change name. Use first 5 chars, plus "0", plus rest...
.GetFile(a(i)).Name = Left(a(i), 5) & "0" & Mid(a(i), 6)
Next
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.