Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: doc в docx
Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


SharkyEXE, ну, как хотите. Вот как-то так, пробуйте (под Microsoft Office 2003 с установленным пакетом обеспечения совместимости, более высокой версии Microsoft Office у меня нет):
Скрытый текст
Код: Выделить весь код
Option Explicit

Const wdAlertsNone = 0
Const wdAlertsAll = -1

Const wdFormatDocument = 0

Const ForAppending = 8


Dim strSourceFolder

Dim objFSO
Dim objFile
Dim objTS

Dim objWord
Dim objDocument

Dim lngTotalDocumentsCount


If WScript.Arguments.Count = 1 Then
	strSourceFolder = WScript.Arguments.Item(0)
	
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FolderExists(strSourceFolder) Then
		Set objWord = Nothing
		
		lngTotalDocumentsCount = 0
		
		For Each objFile In objFSO.GetFolder(strSourceFolder).Files
			If StrComp(objFSO.GetExtensionName(objFile.Name), "docx", vbTextCompare) = 0 Then
				lngTotalDocumentsCount = lngTotalDocumentsCount + 1
				
				If objWord Is Nothing Then
					Set objWord = WScript.CreateObject("Word.Application")
					objWord.DisplayAlerts = wdAlertsNone
					
					Set objTS = objFSO.OpenTextFile(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "Converting Results.log"), ForAppending, True)
					objTS.WriteLine String(79, "=")
					objTS.WriteLine Now() & vbTab & "Start scanning source folder [" & strSourceFolder & "]."
				End If
				
				objTS.WriteLine Now() & vbTab & objFile.Path
				
				Set objDocument = objWord.Documents.Open(objFile.Path)
				objDocument.SaveAs objFSO.BuildPath(objFile.ParentFolder.Path, objFSO.GetBaseName(objFile.Name) & ".doc"), wdFormatDocument
				objDocument.Close
			End If
		Next
		
		If Not objWord Is Nothing Then
			objTS.WriteLine Now() & vbTab & "Finish scanning source folder [" & strSourceFolder & "]."
			objTS.WriteLine Now() & vbTab & "Total [" & lngTotalDocumentsCount & "] documents found."
			objTS.WriteLine String(79, "=")
			objTS.WriteLine
			objTS.Close
			Set objTS = Nothing
			
			objWord.DisplayAlerts = wdAlertsAll
			objWord.Quit
			Set objWord = Nothing
		End If
	Else
		WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
		WScript.Quit 2
	End If
	
	Set objFSO = Nothing
Else
	WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
	WScript.Quit 1
End If

WScript.Quit 0

Рядом со скриптом будет создаваться и дописываться файл Converting Results.log с результатами.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:34, 12-05-2018 | #26

Название темы: doc в docx