У меня есть большое количество файлов изображений, охватывающих почти два десятилетия, когда субъект идентифицируется по имени каталога, и большинство фотографий имеют общее имя, однако некоторые из них имеют более конкретные имена.Я пишу сценарий для добавления имени каталога к имени файла для всех файлов в определенном каталоге.Ну, я пытаюсь по крайней мере.Прошло несколько лет с тех пор, как я использовал VBScript, и кажется, что я ОЧЕНЬ ржавый.Я сталкиваюсь с проблемами с синтаксическим форматом.
Когда у меня есть Option Explicit (в строке 6), он выдает ошибку строки 6, Char 1, Error: Expected Statement, Code: 800A0400 (В моем общем коде этобудет строка 7 из-за добавленной строки начала файла)
Если я закомментирую это, я получу ошибку в операторах импорта вместо строки 3, символ 1, ошибка: несоответствие типов: «Импорт»,Код: 800A000D (В моем общем коде это будет строка 4 из-за добавленной строки Начало файла)
Я потратил несколько часов на поиск возможных причин, но безрезультатно, и поэтому я перехожу кСообщество за помощь в получении правильного форматирования этого сценария.
Любые комментарии о лучшем подходе сценария для выполнения этой задачи также будут оценены.
Я собираюсь поместить в целомкод для файла, потому что я не знаю, какая его часть будет соответствующим аспектом.
В коде в настоящее время он настроен на создание только окна сообщения для электронной почты.ач файл в качестве меры измерения, чтобы убедиться, что переменные имеют значения, которые я думаю, они имеют.Закомментированный код для переименования файла является действительно предназначенной целью.Однако я застрял на правильном форматировании первой части файла.В общем, я выполняю это из командной строки, используя: cscript.exe c: \ MyTools \ addDir2FileName.vbs
Я запустил его через проводник Windows, чтобы получить более конкретные коды ошибок с номерами строк.
Я добавил комментарии «Начало файла» и «Конец файла» просто для ясности в этом посте.
' ####### Beginning of File
' Renames all files in a directory prepending the directory name to the file name
Imports System
Imports System.IO
Option Explicit
Dim WshShell, strOldFull, strNewFull, strFullPath, strCurDir
Dim strCurrentName, strNewName, strMessage, dir, fileObj, fs, fo
' Get the current directory
Set WshShell = CreateObject("WScript.Shell")
strFullPath = WshShell.CurrentDirectory
'Get folder properties to get just the name without path
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set fo=fs.GetFolder(strFullPath)
strCurDir = fo.Name
'Iterate through the directory
set dir = DirectoryInfo(strFullPath)
For Each fileObj In dir.GetFiles()
strCurrentName = fileObj.Name
strNewName = strCurDir & " - " & strCurrentName
' For testing purposes to make sure everything is as expected
' Creates a message box for each file instead of actually renaming it
strMessage = "Old Name: " & strCurrentName & chr(13) & chr(10) & "New Name: " & strNewName
MsgBox strMessage
' Renaming the file
' strOldFull = fs.BuildPath(CurrentDirectory, strCurrentName)
' strNewFull = fs.BuildPath(CurrentDirectory, strNewName)
' My.Computer.FileSystem.RenameFile(strOldFull, strNewFull)
Next
WshShell = Nothing
fo = Nothing
fs = Nothing
' ### End of File
Предполагается, что файл "C: \ Pictures \ Trip to Nice \"DCM001.jpg "будет переименован в" C: \ Pictures \ Trip to Nice \ Trip to Nice - DCM001.jpg ", и все файлы в каталоге, в котором запускается скрипт, будут аналогично переименованы.Ну, если быть более точным, вывод в текущем отформатированном виде выдаст окно с сообщением «Старое имя: C: \ Pictures \ Trip to Nice \ DCM001.jpg Новое имя: C: \ Pictures \ Trip to Nice \ Trip to Nice- DCM001.jpg "и что для всех файлов в каталоге будет создано окно сообщения.Да, я буду запускать версию окна сообщений только в тестовой директории с 3 файлами.Я не хотел бы получать 50000 окон сообщений, смеется.
В настоящее время нет выходных данных из-за проблем с форматированием либо в операторе импорта, либо в явном варианте опции, либо, возможно, в какой-то другой части синтаксиса, которую я пропустил или неправильно.
Спасибо за ваше время и любую помощь, которую может предоставить каждый.Я впервые отправляю сообщения в сообщество, но давно оценил предоставленные ответы.Обычно я могу найти ответы на свои вопросы, но на этом я в тупике ...