Как создать файл?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Artee
Сообщения: 7
Зарегистрирован: Чт фев 17, 2011 17:26

Сообщение Artee »

Flasher
Ура! Pаботает! Спасибо!
Подсказки только перепутал ты, у меня на сборке от Sam вышло так:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\AkelPad.exe /C+
%P%O.txt
%COMMANDER_PATH%\Plugins\exe\AkelPad.exe,1
Создать txt-файл с именем файла/папки под курсором в активной панели и открыть его в AkelPad
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\AkelPad.exe /C+
%Preadme.txt
%COMMANDER_PATH%\Plugins\exe\AkelPad.exe,1
Создать readme.txt в активной панели и открыть его в AkelPad
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV, Artee
Сначала ведь правильно написал, потом копипаст подвёл, будь он неладный. Исправлено. :)
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Artee писал(а):Сделал всё это, но файл создаётся в папке с Akelpad.exe, а как сделать, чтобы он создавался в текущем каталоге на активной панели и открывался для редактирования?
В твоей старой кнопке было заполнено поле "Путь запуска", а должно быть пустое.
Нет, я не сплю. Я просто медленно моргаю.
Shutnik
Сообщения: 1
Зарегистрирован: Чт авг 04, 2011 20:29

Сообщение Shutnik »

А у меня такой вопрос, все мы знаем, что по нажатии Shift+F4 открывается окно где мы вводим имя будущего текстового файла в котором уже поставлено имя файла которое было под курсором в момент нажатия комбинации, так вот, как сделать так, чтобы автоматом и расширение подставлялось нужное мне (например .txt), а имя оставалось

Пример: курсор наведен на файл Totalcmd.exe жму Shift+F4 появляется окно в котором предлагается имя Totalcmd.exe
а мне нужно чтобы предлагалось имя Totalcmd.txt

СПАСИБО!

P.S. Знаю что оффтоп, но все же, кто как хранит заметки или описания к файлам?
Я например к экзешникам создаю текстовик и тем же именем, в котором и храниться описание (чтобы его можно было посмотреть и на другом компьютере и через эксплорер)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Преимущество подставления перед автоматическим созданием без диалога в чём?
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Flasher писал(а):Преимущество подставления перед автоматическим созданием без диалога в чём?
Время на раздумье, возможность на изменение.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Меня интересует мнение вопрошающего, а не обобщённое.

Ладно, вопрошающий может не отвечать.
Для разминки:

Код: Выделить всё

' Создание файла или папки
' Параметры: ""%N"" <расширение>
'===============================
On Error Resume Next
N   = WScript.Arguments(0)
Ext = WScript.Arguments(1)
With CreateObject("Scripting.FileSystemObject")
  If .FileExists(N) Then
    Name = .GetBaseName(N) & "." & Ext
    T = Trim("файла")
  Else
    Name = N
    T = Trim("каталога")
  End If
  L = vbnewline
  D = InputBox(L&L&L&L&L&"Введите имя нового "&T&":","Создание "&T,Name)
  If D > vbNullString Then
    If .FileExists(N) Then 
       .CreateTextFile(D)
    Else .CreateFolder(D)
    End If
  End If
End With
WScript.Quit
Можно повесить хоть на Shift+F4, хоть на F7, хоть что угодно.
Последний раз редактировалось Flasher Пт авг 05, 2011 01:57, всего редактировалось 3 раза.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Shutnik
А что тут за оффтоп бывает, тоже известно? Вопрос риторический. отвечать не надо.
Никаких обсуждений хранения описаний, как нетрудно догадаться, не будет — это абсолютно неуместно ни в данной теме, ни на данном подфоруме.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher, думаю, тут еще не помешало бы сразу открыть файл в редакторе, или хотя бы поставить на него фокус, как это делает тотал.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
Что-то с внутренними ассоциациями ковыряться не хочется.
Если достаточно системных, то после

Код: Выделить всё

       .CreateTextFile(D)
добавить

Код: Выделить всё

       CreateObject("Shell.Application").ShellExecute D
либо с прямым указанием редактора

Код: Выделить всё

CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Utils\AkelPad\AkelPad.exe " & D)
Поскольку речь всё-таки только о файле, сведём к следующему варианту:

Код: Выделить всё

' Создание и открытие файла
' Параметры: ""%N"" <расширение>
'===============================
On Error Resume Next
N   = WScript.Arguments(0)
Ext = WScript.Arguments(1)
With CreateObject("Scripting.FileSystemObject")
 Name = .GetBaseName(N) & "." & Ext
 L = vbnewline
 Box D
 If .FileExists(D) Then
  MsgBox "Такой файл уже существует!"&L&"Повторите попытку!",_
  vbExclamation,"                     Создание файла"
  Box D
 End If
 If D > vbNullString Then
  .CreateTextFile(D)
  CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Utils\AkelPad\AkelPad.exe "& D)
 End If
End With
WScript.Quit

Sub Box(D)
 D = InputBox(L&L&L&L&L&"Введите имя нового файла:",_
 "                                   Создание файла",Name)
End Sub
Вместо пути к AkelPad пишем путь к своему редактору, путь запуска в кнопке/юзеркоманде очищаем.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

Вопрос касательно этого скрипта. Сам скрипт лежит в папке ТС. Создаваемые каталоги появляются рядом с ним же. Как это можно исправить? Еще вроде написано что скрипт может создавать файлы, но создаются только каталоги.[/url]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Не понимаю, зачем исправлять то, что вполне вписывается в существующую логику. Файл или папка создаётся в активной панели в зависимости от того, на каком элементе находится курсор.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

Flasher, я нашел свою ошибку. Просто скрипт повесил на пользовательские команды. В строке Команда прописал файл скрипта, а в строке Путь запуска указал каталог ТС, где скрипт и находился. Это и приводило к тому, что создавалось рядом со скриптом.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Да, путь запуска очищать нужно, т.к. тут указывается имя без пути, поэтому за рабочий каталог воспринимается либо активный, либо тот, который указан напрямую.
Аватара пользователя
Baddim
Сообщения: 39
Зарегистрирован: Вт май 18, 2010 16:17
Откуда: Челябинск
Контактная информация:

Сообщение Baddim »

У меня notepad++, который при запуске команды создания файла %COMMANDER_PATH%\Notepad++\notepad++.exe с параметром %Pnew.txt переспрашивает "Create it?"
Как этого избежать? А еще лучше: чтоб всплывал диалог названия нового файла. Попытался создать кнопку через приведенный выше скрипт, но обработчик Явы на него ругается
Любой Путь верный, что ведёт к Добру и Свету
------------
Win7x64, TC 7.56a
Ответить