1 (изменено: alexii, 2011-12-29 07:30:29)

Тема: JScript: Создание папки с использованием переменной среды

Хочу создать новую папку в C:\Users\%UserName%\AppData\Roaming (Win - 7). в этой папке программы хранят свои данные.

Пробую следующим образом:

<script language="JScript">
var fso = new ActiveXObject('Scripting.FileSystemObject');
    fso.CreateFolder('%APPDATA%\NewFolder');
</script>

При этом папка создается в текущей папке  рядом с самим приложением с именем "%APPDATA%NewFolder". Как создать папку в нужном месте?
P.S. Скрипт выполняется в HTA приложении.

2 (изменено: stir, 2011-12-29 06:15:52)

Re: JScript: Создание папки с использованием переменной среды

function createfolders(namefolder) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
    var b3 = fso.FolderExists(namefolder);    // true, если папка существует
        if (b3==true) alert("Данная директория уже существуют, ее создание невозможно ");
        else {
                var f3 = fso.CreateFolder(namefolder, 1, false);
        f3.Close();
        alert("Директория "+'\n'+namefolder+'\n'+" cоздана")
        }
}
var namefolder="c:\\backup\\";

1 код - это функция
2 часть кода взята из основного тела программы, где присваивается имя переменной..
Все работает. Проверку на наличие папки с таким именем можно исключить...
Если внимательно присмотреться твою ошибку найти не составит труда.

Есть еще одно предостережение: в 7-ке могут потребоваться права администратора и/или их подтверждение в зависимости от настройки ПК. Мой код предназначен для ХП без подтверждения прав администратора.

Любители построили Ковчег, а профессионалы - Титаник.

3

Re: JScript: Создание папки с использованием переменной среды

var f3 = fso.CreateFolder(namefolder, 1, false);

Ошибка: Недопустимое число аргументов или присвоение значения свойства.

f3.Close();

Ошибка: Объект не поддерживает свойство или метод "Close".

Не нужно путать CreateFolder() с CreateTextFile().

И мне нужно воспользоваться переменной среды.

4

Re: JScript: Создание папки с использованием переменной среды

Magneto, используйте метод ExpandEnvironmentStrings().

5

Re: JScript: Создание папки с использованием переменной среды

или shell.application

mshta "javascript:x=new ActiveXObject('shell.application');s='';for(i=1;i<100;i++)try{s+='<tr><td>'+x.NameSpace(i).self.Name+'</td><td>'+x.NameSpace(i).self.Path+'</td></tr>'}catch(e){};window.onload=function(){document.write('<table>'+s+'</table>')}"

Я конечно далек от мысли... (с)

6

Re: JScript: Создание папки с использованием переменной среды

OFF: При использовании Shell'а нагляднее использовать «говорящие» предопределённые имена: WSH: перечень предопределённых символьных имён Shell.Application.

7

Re: JScript: Создание папки с использованием переменной среды

explorer \\ws021\::{2227A280-3AEA-1069-A2DE-08002B30309D}

Я конечно далек от мысли... (с)

8 (изменено: Magneto, 2012-01-08 15:14:46)

Re: JScript: Создание папки с использованием переменной среды

alexii пишет:

Magneto, используйте метод ExpandEnvironmentStrings().

Спасибо, я воспользовался этим методом:

var wss = new ActiveXObject('WScript.Shell');
var path = wss.ExpandEnvironmentStrings('%APPDATA%');