- У меня есть папка, которая содержит кучу файлов .pdf. Имена выглядят как (2-581.pdf, 131-681.pdf, 1138-4.pdf, ...)
- Файлы .pdf разбиты на две части partA-partB.pdf, разделенные «-»
- У меня есть лист Excel, в котором перечислены все результаты в папке
- Лист Excel содержит много PDF-файлов, перечисленных в нем, больше, чем в папке.
- листа Excel, первые 2 строки являются заголовок и заголовки
- Лист Excel, первый столбец тест #, который будет префикс
- Лист Excel, 4-ый столбец Parta исходного файла .pdf, 5-й столбец partB
Ideal Я результаты достижения конечных запустить Automator/AppleScript и указать его в папку, содержащую .pdfs и лист первенствовать, содержащий информацию. Он запускает и переименовывает все .pdfs в папке, которые находятся в excel. Переименованные файлы будут состоять из теста #, пробела и исходного имени. Строка в листе excel будет выделена/помечена каким-либо образом, показывая, что она была найдена.
Я искал несколько разных форумов, а также этот и попытался скомпоновать код, чтобы попытаться заставить что-то работать. Я не буду вставлять этот код, поскольку я не получил его, чтобы работать в моем сценарии.
Следующий код, который я объединил, скопировал с другого справочного форума и попытался настроить его для моего сценария. Это вроде работает для первых 6 предметов, а затем просто останавливается (я думаю, потому что 7-й элемент не находится в папке). Кроме того, чтобы заставить его работать, мне пришлось вручную создавать оригинальные имена файлов и имена новых файлов в excel. Я сделал это, потому что не смог заставить его работать за пределами excel.
Любая помощь, предложения, ссылки на возможные решения приветствуются. У меня есть много результатов тестов, чтобы пройти на многих разных листах Excel, и это спасло бы мне массу времени. Сегодня я проиграл, пытаясь понять это сам. Я либо переоцениваю это, либо над головой. Спасибо!
set KeyFileName to choose file with prompt "Choose the Excel file"
set WorkingDirectory to (choose folder with prompt "Please locate the folder with the processed .pdf's.") as string
set KeyFilePath to WorkingDirectory & KeyFileName
set FileNamesKey to my GetFileNamesKey(KeyFilePath)
set theResult to ChangeFileNames(WorkingDirectory, FileNamesKey)
return theResult
end run
to GetFileNamesKey(KeyFilePath)
tell application "Microsoft Excel"
set ResultsRange to used range of active sheet of active workbook
set FileNames to {}
repeat with i from 1 to count of rows in ResultsRange
set NewFileName to value of third column of row i of ResultsRange
set OldFileName to value of second column of row i of ResultsRange
set FileNames to FileNames & {{OldFileName, NewFileName}}
end repeat
return FileNames
end tell
end GetFileNamesKey
to ChangeFileNames(WorkingDirectory, FileNamesKey)
tell application "Finder"
repeat with aFile in FileNamesKey
set OldFileName to item 1 of aFile
set NewFileName to item 2 of aFile
set PathToFile to WorkingDirectory & OldFileName
try
set FileExtension to name extension of file (WorkingDirectory & (item 1 of aFile))
set name of file PathToFile to NewFileName & "." & FileExtension
on error
exit repeat
return false
end try
end repeat
end tell
return true
end ChangeFileNames
return input
end run
Я запустил это, и он возвращается с ошибкой, которая заявляет: Finder получил ошибку: Невозможно сделать {1.0, "", "A-53.pdf"} в текст типа Юникод. Выделенный код, который поставляется с этой ошибкой является следующая: 'если FileExist затем \t \t \t РАССКАЖИ«Finder»** установить имя файла theFile для NewName **' – OriginalDuplicate
Странно я проверил это нормально на моем боковая сторона. Я думаю, что это может произойти от значения вашего столбца A. Сначала добавьте строку непосредственно перед «if FileExist ..» с помощью: log «name =» & NewName. он покажет значение NewName. основанный на вашей ошибке, кажется, что он становится списком вместо строки. если это так, то вам, возможно, придется изменить строку «set NewName ...». сначала проверьте и дайте мне знать, я обновлю скрипт. – pbell
Я попытался добавить строку журнала, упомянутую выше, и получил ту же ошибку. Не совсем уверен, как проверить журналы, чтобы увидеть, что эта переменная тянет. Мне удалось добавить «как текст» после установки OldName и NewName, и это сработало. теперь скрипт запускается, я вижу, что ячейки становятся красными, а файлы переименовываются! Переименованные файлы называются префикс числа с десятичной точкой. Я удалил десятичные пробелы в листе excel в форматировании, но, похоже, все еще помещает его там в имя. ПРИМЕР: «75.0 769-315.pdf» – OriginalDuplicate