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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт создания notepad с содержимым

Ответить
Настройки темы
VBS/WSH/JS - [решено] Скрипт создания notepad с содержимым

Пользователь


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

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


Здравствуйте. Скрип создаёт текстовый документ в папке, не заходя в неё, на папке кнопка в контекстном меню через реестр. Но при повторе второй notepad не создаётся, текст заменяется в одном первом. Как каждый следующий раз создавать новый с новым именем?

var folderName = WSH.Arguments(0);
var FSO = WSH.CreateObject("Scripting.FileSystemObject");
var textData = new ActiveXObject('HTMLFile').parentWindow.clipboardData.getData("text");
FSO.GetFolder(folderName).Attributes = 1;
if(FSO.FileExists(folderName + "\\notepad.txt")){
var ft = FSO.GetFile(folderName + "\\notepad.txt");
}
var fileObjStr = FSO.OpenTextFile(folderName + "\\notepad.txt", 2, true, -1);
fileObjStr.Write(textData);
fileObjStr.Close();

Отправлено: 23:59, 20-07-2024

 

Deadooshka


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

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


FSO.GetTempName() - уникальное имя файла (вместо notepad.txt)

Отправлено: 08:51, 21-07-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


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

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


Цитата Sham:
вместо notepad.txt »
У меня ничего не получилось, делает тогда с именем FSO.GetTempName(). Покажите пример?

Отправлено: 09:46, 21-07-2024 | #3


Deadooshka


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

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


folderName + "\\" + FSO.GetTempName().replace('.tmp', '.txt')
Цитата denis19:
FSO.GetFolder(folderName).Attributes = 1;
if(FSO.FileExists(folderName + "\\notepad.txt")){
var ft = FSO.GetFile(folderName + "\\notepad.txt");
} »
вот это непонятно зачем (установка атрибута папки и переменная ft)

Отправлено: 10:35, 21-07-2024 | #4


Пользователь


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

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


Цитата Sham:
folderName + "\\" + FSO.GetTempName().replace('.tmp', '.txt') »
Нет, тоже самое выполняет, один и тот же файл. А если по другому, то шибки выдаёт.
var folderName = WSH.Arguments(0);
var FSO = WSH.CreateObject

("Scripting.FileSystemObject");
var textData = new ActiveXObject

('HTMLFile').parentWindow.clipboardData.getData("text");
folderName + "\\" + FSO.GetTempName().replace('.tmp', '.txt')
var fileObjStr = FSO.OpenTextFile(folderName + "\\notepad.txt", 2, true, -1);
fileObjStr.Write(textData);
fileObjStr.Close();

Отправлено: 11:31, 21-07-2024 | #5


Deadooshka


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

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


Код: Выделить весь код
var folderName = WSH.Arguments(0);
var FSO = WSH.CreateObject("Scripting.FileSystemObject");
var textData = WSH.CreateObject('HTMLFile').parentWindow.clipboardData.getData("text");
var fileObjStr = FSO.OpenTextFile(folderName + "\\" + FSO.GetTempName().replace('.tmp', '.txt'), 2, true, -1);
fileObjStr.Write(textData);
fileObjStr.Close();
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:29, 21-07-2024 | #6


Пользователь


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

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


Работает. Спасибо. А если бы и имя покрасивее, нумеровать одно - notepad1, notepad2, было бы вообще загляденье.

Отправлено: 12:52, 21-07-2024 | #7


Deadooshka


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

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


Побольше кода будет. Надо все файлы в папке проверить и вытащить максимальную цифру.
Код: Выделить весь код
var folderName = WSH.Arguments(0);
var FSO = WSH.CreateObject('Scripting.FileSystemObject');
var textData = WSH.CreateObject('HTMLFile').parentWindow.clipboardData.getData('text');
var fn = 'notepad|d|.txt';
var fileObjStr = FSO.OpenTextFile(get_path(), 2, true, -1);
fileObjStr.Write(textData);
fileObjStr.Close();

function get_path() {
  var fold = FSO.GetFolder(folderName), c = 0, c2 = 0, m;
  var rex = new RegExp(fn.replace('.', '\\.').replace('|d|', '(\\d*)'), 'i');
  iter(fold.Files, function(i) {
    if (m = i.Name.match(rex)) {
      c = m[1] ? parseInt(m[1]) : 0;
      if (c > c2) c2 = c;
    }
  });
  return FSO.BuildPath(fold.Path, fn.replace('|d|', ++c2));
}

function iter(obj, fn) {
  for (var enu = new Enumerator(obj);
    !enu.atEnd();
    enu.moveNext()
  ) fn(enu.item());
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 21-07-2024 | #8


Пользователь


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

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


Цитата Sham:
Побольше кода будет. Надо все файлы в папке проверить и вытащить максимальную цифру. »
Этот супер. Спасибо большое.

Отправлено: 15:19, 21-07-2024 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт создания notepad с содержимым

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] скрипт добавляющий папку с содержимым в архив infoman1@vk Скриптовые языки администрирования Windows 7 04-07-2015 17:40
MySQL - скрипт создания базы данных Vladas Программирование и базы данных 1 21-04-2012 20:41
Установка тем для Notepad++ с применением(NSIS скрипт+тема-сборка прилагается) hb860 Автоматическая установка приложений 3 16-10-2011 16:40
Любой язык - Батник (скрипт) для создания odbc ITSpec Скриптовые языки администрирования Windows 2 09-12-2009 10:32
Скрипт для создания пользователей Ven Microsoft Windows NT/2000/2003 6 24-02-2008 23:57




 
Переход