Vbscript 使用vbs脚本的文件名

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 (

我想添加一个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 (
        '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