Vbscript 使用vbs脚本的文件名
我想添加一个charecter文件名。 比如说Vbscript 使用vbs脚本的文件名,vbscript,Vbscript,我想添加一个charecter文件名。 比如说 123456.jpg --> 1234506.jpg ABCDEF.jpg --> ABCDE0F.jpg 原始文件6个字符新文件名7个字符我想为所有文件名添加0,请注意0字符后有一个字符 对于此ProcessBatch文件或vbs 问候, @echo off setlocal enableextensions disabledelayedexpansion for /f "delims=" %%a in (
123456.jpg --> 1234506.jpg
ABCDEF.jpg --> ABCDE0F.jpg
原始文件6个字符新文件名7个字符我想为所有文件名添加0,请注意0字符后有一个字符
对于此ProcessBatch文件或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 command replacement参数中,禁用延迟扩展,现在执行所需的命令,而不会出现感叹词问题
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