powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word сохранить документ как из командной строки
35 сообщений из 35, показаны все 2 страниц
Word сохранить документ как из командной строки
    #37366002
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли возможность переконвертировать doc документ в другой формат, например, RFT или Web Page filtered?

Как то так

> word.exe doc1.doc doc1.html

Чтобы не открывать каждый раз word и выполнять одни и те же действия

Office 2003, если это принципиально
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366209
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно написать VB-скрипт, который будет это делать
Но ворд будет открываться (пусть и невидимый)
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366224
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне все равно, а как будет выглядеть сам скрипт? В документации msdn нашел только формат wdFormatHTML, а мне нужен Filtered.
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366265
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha, на запись поставьте, сохранить как и читайте, а папку и цикл по количеству файлов думаю знаете как сделать
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366268
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не увидел, что такое Filtered, а RFT можно
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366300
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hhaа как будет выглядеть сам скрипт?
ALex_hhaнапример, RFT

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim WA, WD, Args
Set Args = WScript.Arguments
Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open(Args( 0 ))
WD.SaveAs Args( 1 ),  6 
WD.Close
Set WD = Nothing
WA.Quit
Set WA = Nothing
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366327
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
Вызов:
Код: plaintext
conv.vbs V:\we.doc V:\we.rtf
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366411
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне увидел, что такое Filtered, а RFT можно
см вложение
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366428
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha, да понял, просто оперирую рускими названиями, вот в ухо врезалось
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366442
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
скрипт для личного пользования, так что не критично. А что такое 6 в

WD.SaveAs Args(1), 6

?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366450
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wdFormatRTF
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366459
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где или как можно узнать порядковые номера всех форматов?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366466
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Запустить Ворд
2) Alt-F11
3) F2
4) wdSaveFormat<Enter>
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37366468
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Option Explicit
'Option - Вариант
'Explicit - Явный

Sub FIO()

'сохранить в папке все документы (.rtf) как веб-страницы, с расширением .mht
'сохранить в папке все документы (.rtf) как веб страница и папка с рисунками, с расширением .htm
Dim sDir As String
Dim sFileName As String
Dim oDoc As Document
Dim i As Integer
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Выберите папку"
    If .Show Then sDir = .SelectedItems( 1 ) Else Exit Sub
  End With
  
  'если нужна конкретная папка, тогда блок выше убираем, вместо него: sDir = "L:\Мир Эксель"
  
  Application.ScreenUpdating = False
  sFileName = Dir(sDir & Application.PathSeparator & "*.rtf")
  While Len(sFileName) >  0 
    sFileName = sDir & Application.PathSeparator & sFileName
    Set oDoc = Documents.Open(sFileName, False, False, False)
    'сохранить в папке все документы (.rtf) как веб-страницы, с расширением .mht
    oDoc.SaveAs VBA.Mid$(sFileName,  1 , InStrRev(sFileName, ".")) & "mht", wdFormatWebArchive, AddToRecentFiles:=False
    'сохранить в папке все документы (.rtf) как веб страница и папка с рисунками, с расширением .htm
    oDoc.SaveAs VBA.Mid$(sFileName,  1 , InStrRev(sFileName, ".")) & "htm", wdFormatHTML, AddToRecentFiles:=False
    oDoc.Close
    sFileName = Dir
    i = i +  1 
    DoEvents
  Wend
  Application.ScreenUpdating = True
  MsgBox "Пересохранение завершено. Сохранено " & i & " файлов"

End Sub
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37367007
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) Запустить Ворд
2) Alt-F11
3) F2
4) wdSaveFormat<Enter>
Спасибо большое, вот то, что мне нужно wdFormatFilteredHTML = 10

Еще вопрос. При конвертации некоторых документов появляются такие диалоговые окна (см атач). Их как то надо обрабатывать в скрипте?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37367009
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот такое иногда бывает


З.Ы.
IE4 это Windows 95 что ли?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37367227
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй WA.DisplayAlerts=0
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37368893
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге написал такой скрипт

doc2html.vbs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim WA, WD, outputDir, inputDir, Args, outputFileName

Set Args = WScript.Arguments
Set oWordApp = CreateObject("Word.Application")

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

inputDir = oShell.CurrentDirectory & "\DOC\"
outputDir = oShell.CurrentDirectory & "\HTML\"

for each currFile in oFSO.GetFolder(inputDir).Files
	Set oWordDocs = oWordApp.Documents.Open(currFile.Path)
	outputFileName = outputDir & Left(currFile.ShortName, Len(currFile.ShortName)- 4 ) & ".html"
	oWordDocs.SaveAs outputFileName,  10 
	oWordDocs.Close
	Set WD = Nothing
Next

oWordApp.Quit
Set WA = Nothing

Входные данные берет из папки DOC, все выходные файлы сохраняет в папку HTML

З.Ы.
скрипт вываливался с ошибкой - "Не возможно запустить конвертор mswrd632.wpc". После установки http://support.microsoft.com/kb/973904 ошибка пропала. Хотя на системе стоит SP3 и все доступные апдейты.
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37368904
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Set WA = Nothing
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37368913
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да то очепятка, в скрипте конечно

Set oWordApp = Nothing

Единственное что не понравилось, имя входного файла - 1. Розмноження організмів. Основні поняття генетики. Методи генетичних досліджень.doc , а в папке HTML получил - 5B9B8~1.html

Или это из-за использования currFile.ShortName?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37368929
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hhaИли это из-за использования currFile.ShortName? разумеется
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37368938
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, заменил на

outputFileName = outputDir & Left(currFile.Name, Len(currFile.Name)-4) & ".html"

и все работает как надо, всем спасибо за помощь.

Может кому пригодится выкладываю финальный рабочий вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Dim WA, WD, outputDir, inputDir, Args, outputFileName, convertedFiles

Set Args = WScript.Arguments
Set oWordApp = CreateObject("Word.Application")

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

inputDir = oShell.CurrentDirectory & "\DOC\"
outputDir = oShell.CurrentDirectory & "\HTML\"

convertedFiles =  0 
for each currFile in oFSO.GetFolder(inputDir).Files
	Set oWordDocs = oWordApp.Documents.Open(currFile.Path)
	outputFileName = outputDir & Left(currFile.Name, Len(currFile.Name)- 4 ) & ".html"
	oWordDocs.SaveAs outputFileName,  10 
	oWordDocs.Close
	Set oWordDocs = Nothing
	convertedFiles = convertedFiles +  1 
Next

MsgBox "Конвертация успешна завершена. Сохранено " & convertedFiles & " файлов"

oWordApp.Quit
Set oWordApp = Nothing
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37369149
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37369247
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hhaFinal Release :D
http://wiki.sys-adm.org.ua/doc/scripts
хи
а говорил
ALex_hhaавторВ приведенный код по хорошему нужно добавлять проверки наличия аргументов командной строки, проверка существования файла, обработка ошибок ну и т.п.
скрипт для личного пользования, так что не критично.
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37369707
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну решил облагородить так сказать :D
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37369724
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha, это что
Left(currFile.Name, Len(currFile.Name)-4) & ".html"
откидывание 4 знаков?? можно было поизящней сделать, узнать имя файла без расширения
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37369907
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автороткидывание 4 знаков??
именно, чтобы имя входного и выходного файлов совпадали

авторможно было поизящней сделать, узнать имя файла без расширения
поделись секретом.

Я просто в основном работаю с с++/php, поэтому многих фишек на vbs не знаю. Так что камнями в меня не бросать :D
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37370137
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha,

Код: plaintext
1.
2.
3.
Полное_имя_файла_с_расширением_и_местом_его_нахождения = ActiveDocument.FullName
Имя_файла_с_расширением = ActiveDocument.Name
Имя_файла_без_расширения = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveDocument.Name)
Расширение_файла = CreateObject("Scripting.FileSystemObject").GetExtensionName(ActiveDocument)
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37370507
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveDocument это какой то объект? Его надо как то инициализировать перед использованием?
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37371608
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALex_hha, у Вас вопрос был:Есть ли возможность переконвертировать doc документ в другой формат
В чём проблема АктивеДокумент, это документ Ворда, что код не работает??
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37371610
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
инициализировать перед использованием?
нет, в Ворде не надо
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37377190
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую такую конструкцию

outputFileName = oFSO.GetBaseName(oWordApp.ActiveDocument.Name) & ".html"

ошибок не возникает и скрипт пишет, что успешно конвертировал 1 файл, но при этом в папке HTML ничего не появляется
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37377192
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привожу текущую версию

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
' doc2html.vbs
' Конвертация doc файлов в html
' Входные данные должны находиться в папке со скриптом в подпапке DOC
' Например: если скрипт находится в C:\VBS\doc2html.vbs, то все doc файлы 
' должны лежать в C:\VBS\DOC, в результате конверта все сохраненные файлы
' будут помещены в подпапку HTML.
'
' Примечание: 
' - для работы скрипта в системе должен быть установлен MS Word.

Dim oWordApp, oWordDocs, outputDir, inputDir, outputFileName, convertedFiles

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

inputDir = oShell.CurrentDirectory & "\DOC\"
outputDir = oShell.CurrentDirectory & "\HTML\"

if not oFSO.FolderExists (outputDir) then oFSO.CreateFolder(outputDir)
if not oFSO.FolderExists (inputDir) then 
	MsgBox "Входная папка DOC не существует. Скопируйте *.doc файлы в папку DOC и запустите скрипт снова.", vbCritical, "doc2html converter"
	oFSO.CreateFolder(inputDir)
	WScript.Quit
end if

If oFSO.GetFolder(inputDir).Files.Count =  0  Then 
	MsgBox "Не найдено файлов для конвертации!", vbExclamation, "doc2html converter"
	WScript.Quit
End If 

convertedFiles =  0 
Set oWordApp = CreateObject("Word.Application")

for each currFile in oFSO.GetFolder(inputDir).Files
	Set oWordDocs = oWordApp.Documents.Open(currFile.Path)
	outputFileName = oFSO.GetBaseName(oWordApp.ActiveDocument.Name) & ".html"
	oWordDocs.SaveAs outputFileName,  10 
	oWordDocs.Close
	Set oWordDocs = Nothing
	convertedFiles = convertedFiles +  1 
Next

MsgBox "Конвертация успешна завершена. Сохранено " & convertedFiles & " файлов", vbInformation, "doc2html converter"

oWordApp.Quit
Set oWordApp = Nothing
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37377206
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, нашел проблему

outputFileName = outputDir & oFSO.GetBaseName(oWordApp.ActiveDocument.Name) & ".html"

забыл добавить outputDir &
...
Рейтинг: 0 / 0
Word сохранить документ как из командной строки
    #37377210
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ чём проблема АктивеДокумент, это документ Ворда, что код не работает??
имелось ввиду что надо писать oFSO.GetBaseName(oWordApp.ActiveDocument.Name), а не просто oFSO.GetBaseName(ActiveDocument.Name). Об этом и спрашивал ;)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word сохранить документ как из командной строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]