Я нашел vbscript, который позволит мне обновить имена файлов, чтобы заменить "_" на «» (пробел), что было очень полезно. Я надеюсь сделать пару небольших изменений в этом же скрипте, чтобы добавить префикс к тем же файлам. Тем не менее, каждая моя попытка просто застревает в бесконечном цикле, который истекает, и добавляется более или менее бесконечное количество префиксов. Я не могу определить правильные условия для выхода из цикла после одного запуска для каждого файла. Ниже приведен сценарий. Любая помощь приветствуется.

Set objFSO = CreateObject("Scripting.FileSystemObject")   
Set Folder = objFSO.GetFolder("C:test")

For Each File In Folder.Files  
    sNewFile = File.Name  
    sNewFile = Replace(sNewFile, "_", "")  
    If (sNewFile <> File.Name) Then  
        File.Move (File.ParentFolder + "\" + sNewFile)  
    End If

Next

1 ответ1

1

Как насчет:

dim objFSO    : set objFSO = CreateObject("Scripting.FileSystemObject")
dim objFolder : Set objFolder = objFSO.GetFolder(".")
For Each File In objFolder.Files
    if instr(File.Name, "_") > 0  then
      objFSO.MoveFile File.Name, "PREFIX-" & replace(File.Name, "_", " ") 
    end if
Next

Для каждого файла в том же каталоге, что и скрипт, он проверит, имеет ли имя файла подчеркивание: если это так, то он переименует этот файл в строку «PREFIX-» и заменит подчеркивание пробелом.

Возможно, стоит закомментировать строку MoveFile и создать новую строку с:

wscript.echo "Renaming: " & File.Name & " to: PREFIX-" & replace(File.Name, "_", " ") 

Например

dim objFSO    : set objFSO = CreateObject("Scripting.FileSystemObject")
dim objFolder : Set objFolder = objFSO.GetFolder(".")
For Each File In objFolder.Files
    if instr(File.Name, "_") > 0  then
      'objFSO.MoveFile File.Name, "PREFIX-" & replace(File.Name, "_", " ") 
      wscript.echo "Renaming: " & File.Name & " to: PREFIX-" & replace(File.Name, "_", " ") 
    end if
Next

Это покажет вам, что он будет делать, если вы запустите:
cscript script.vbs> out.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .