1 (изменено: радианта, 2011-05-25 00:23:03)

Тема: JScript: Не получается открыть файл в блокноте

Здравствуйте. Есть задание, при запуске скрипта надо проверить на наличие файла с каким-то названием(название файла задается через командную строку), если такого файла нет, то создать, а затем открыть для редактирования.
Вот что у меня получилось:

var WshShell, FSO,args, folder, file, WshFldrs, d,e,FilePath, vbOkCancel, vbOk, Res;
var vbOkCancel=1, vbOk=1;
WshShell=WScript.CreateObject("WScript.Shell");
args=WScript.Arguments;
WScript.Echo("Аргументы сценария "+args(0)+" "+args(1)+" "+args(2));

FSO = WScript.CreateObject("Scripting.FileSystemObject");
folder = FSO.GetFolder("d:\\2250\\Fyodorova");

//Вывод диалогового окна
Res=WshShell.Popup("Проверить наличие файлов с такими именами?", 0, "", vbOkCancel);
if (Res==vbOk)
WScript.Sleep(1000);
else
{WScript.Echo("прекращение работы сценария");
WScript.Quit();}

WScript.Echo("Проверяем наличие файла с именем "+args(0));
WScript.Sleep(500);
if (FSO.FileExists(folder+"\\"+args(0)+".txt"))
    WScript.Echo("Файл " + args(0) + " существует")
else
    {Res=WshShell.Popup("Файл не найден. Создать файл с таким именем?", 0, "", vbOkCancel);
if (Res==vbOk)
{WScript.Echo("Создаем файл "+args(0));
WScript.Sleep(300);
folder.CreateTextFile(args(0)+".txt");
WScript.Sleep(10000);
WshShell.Run("notepad"+"d:\\2250\\Fyodorova\\1.txt");
WScript.Sleep(10000);
 Res=WshShell.Popup("Сохранить изменения?", 0, "", vbOkCancel);
   if (Res==vbOk)
{WshShell.AppActivate("notepad");
WScript.Sleep(500);
WshShell.SendKeys("%{F4}");
WScript.Sleep(800);
WshShell.SendKeys("~");}
}

После запуска скрипта, создается файл, открывается в блокноте, пользователь там что-то вводит, потом появляется диалоговое окно, я выбираю сохранить файл. Тогда блокнот закрывается и при закрытии запрашивает сохранить или нет (по идее должен нажаться ентер и сохранить), но появляется ошибка, что файл не может быть сохранен, надо проверить путь и название файла.
А в другой раз (я не помню что изменила) появляется ошибка (когда в блокноте надо открыть), выдает что файл не найден, хотя в папке видно что после запуска скрипта создался такой файл.
Помогите пожалуйста, если есть время))

2 (изменено: GreyBear, 2011-05-25 08:38:47)

Re: JScript: Не получается открыть файл в блокноте

В текущем коде файл создается и открывается на запись и не закрывается, т.е. он остается "залочен" скриптом, и notepad соответственно не может сохранить изменения.
Поэтому

folder.CreateTextFile(args(0)+".txt")

заменить на

objFile = folder.CreateTextFile(args(0)+".txt")
objFile.Close()

3

Re: JScript: Не получается открыть файл в блокноте

Точно, я совсем про это забыла. Спасибо большое!)