Ответ 1
Существует множество методов для встраивания и выполнения JScript в пакете script. Вот несколько:
-
fooobar.com/questions/22604/...
Это мой любимый, и тот, который я буду использовать ниже -
fooobar.com/questions/22605/...
Мне не нравится этот метод, потому что он определяет дополнительную (нежелательную) переменную среды. -
fooobar.com/questions/22604/... (до EDIT)
Еще один отличный выбор. -
fooobar.com/questions/7005/... (окончательный UPDATE 2014-04-27 внизу)
Этот метод WSF не совсем удобен, но он эффективен в том, что вы можете встраивать и выполнять любое количество независимых заданий JScript и/или VBS в пределах одной партии script.
Итак, вот как вы могли бы использовать опцию 1. объединить два сценария в один файл:
@if (@X)==(@Y) @end /* Harmless hybrid line that begins a JScript comment
:: ******* Begin batch code *********
@echo off
for %%g in ("test\*.doc") do cscript //E:JScript //nologo "%~f0" "%%~fg"
exit /b
********* Begin JScript code **********/
var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);
var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;
try
{
WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");
objWord = new ActiveXObject("Word.Application");
objWord.Visible = false;
var objDoc = objWord.Documents.Open(docPath);
var wdFormatPdf = 17;
objDoc.SaveAs(pdfPath, wdFormatPdf);
objDoc.Close();
WScript.Echo("Done.");
}
finally
{
if (objWord != null)
{
objWord.Quit();
}
}