View previous topic :: View next topic |
Author |
Message |
BeTeP
Joined: 31 Mar 2005 Posts: 105 Location: Санкт-Петербург
|
(Separately) Posted: Mon Mar 27, 2006 13:19 Post subject: Кнопка для создания файла |
|
|
Прочитал в RU.TCKB, как быстро создать файл нажатием кнопки.
Пример:
Quote: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Programs\AkelPad\akelpad.exe
%pNewFile.txt
%COMMANDER_PATH%\Programs\AkelPad\akelpad.exe
Создание файла в активной панели
%COMMANDER_PATH%\Programs\AkelPad\
-1
|
В данном случае я использую AkelPad, потому что он не задает лишних вопросов (создать ли файл с именем NewFile.txt). Но, если надо создать ещё один файл, а предыдущий файл не сохранен и не переименован, то эта кнопочка не помогает. Открывается дубликат уже созданного файла, что не очень удобно.
Можно ли сделать, чтобы при нажатии на кнопку создавался файл и если, файл с таким именем уже есть, то создавался файл с этим же именем и с номером в конце. Например: если есть файл NewFile.txt, то следующие будут: NewFile01.txt, NewFile02.txt NewFile03.txt и т.д. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 27, 2006 14:22 Post subject: |
|
|
BeTeP
Создай файл *.vbs (например, %COMMANDER_PATH%\Utils\WHS\OpenWithNextNumber.vbs) с содержимым:
Code: | Dim Akelpad, FilePath, WS
Akelpad = WScript.Arguments(0)
FilePath = WScript.Arguments(1)
Set WS = WScript.CreateObject("WScript.Shell")
WS.Run """" & Akelpad & """ """ & NextName(FilePath) & """"
Set WS = Nothing
WScript.Quit()
Function NextName(pFilePath)
Dim FSO, Path, Name, Ext, i, Ending
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.GetParentFolderName(pFilePath) & "\"
Name = FSO.GetBaseName(pFilePath)
Ext = FSO.GetExtensionName(pFilePath)
Do While FSO.FileExists(Path & Name & Ending & "." & Ext)
i = i + 1
Ending = Right("0" & i, 2)
Loop
Set FSO = Nothing
NextName = Path & Name & Ending & "." & Ext
End Function |
Соответственно кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\OpenWithNextNumber.vbs %COMMANDER_PATH%\Programs\AkelPad\akelpad.exe
%pNewFile.txt
%COMMANDER_PATH%\Programs\AkelPad\akelpad.exe
Создание файла в активной панели
-1 |
|
|
Back to top |
|
|
BeTeP
Joined: 31 Mar 2005 Posts: 105 Location: Санкт-Петербург
|
(Separately) Posted: Tue Mar 28, 2006 12:42 Post subject: |
|
|
Batya, спасибо.
Сейчас буду пробовать. |
|
Back to top |
|
|
BeTeP
Joined: 31 Mar 2005 Posts: 105 Location: Санкт-Петербург
|
(Separately) Posted: Tue Mar 28, 2006 13:46 Post subject: |
|
|
Попробовал. К сожалению выдает ошибку:
|
|
Back to top |
|
|
BeTeP
Joined: 31 Mar 2005 Posts: 105 Location: Санкт-Петербург
|
(Separately) Posted: Tue Mar 28, 2006 13:52 Post subject: |
|
|
Batya, извини. Всё работает.
Это я сам ошибся при создании кнопки.
Ещё раз спасибо. |
|
Back to top |
|
|
KarS
Joined: 21 Apr 2006 Posts: 102 Location: г. Абакан
|
(Separately) Posted: Sun May 26, 2013 19:00 Post subject: |
|
|
Batya
Спасибо за скрипт. Мне он тоже пригодился.
Но возникло одно неудобство в моей работе.
Скрипт, как и положено, создаёт файл "NewFile.txt", а потом следующие.
Но для меня это не удобно для последующих действий. Я эти файлы использую как промежуточные для вставки в другие документы.
Поэтому более удобной нумерацией в моей ситуации был бы порядок, когда счёт начинался бы с "NewFile01.txt", затем "NewFile02.txt" и т.д.
Как можно доработать скрипт, чтобы он по-умолчанию создавал файл "NewFile01.txt", а потом другие?
И ещё один вопрос. Можно ли отключить запросы на подтверждение имени создаваемого файла? Имхо это лишнее. И так видно, файл с каким именем создаётся. Да и изменить имя в процессе создания файла нельзя. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 26, 2013 21:18 Post subject: |
|
|
KarS
Quote: | WS.Run """" & Akelpad & """ /C+ """ & NextName(FilePath) & """" | и Quote: | Ext = FSO.GetExtensionName(pFilePath) : Ending = "01" |
А вообще AkelPad тут вовсе лишний. Текстовые файлы без него элементарно создаются...
Также на здешние решения обращаю внимание. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
KarS
Joined: 21 Apr 2006 Posts: 102 Location: г. Абакан
|
(Separately) Posted: Mon May 27, 2013 19:16 Post subject: |
|
|
Flasher,
Чудно, Спасибо!
Работает для меня идеально, так как нужно. Мне пока большего и не надо.
Спасибо за грамотную и оперативную помощь!
Но далее тоже заинтересовало:
Quote: | А вообще AkelPad тут вовсе лишний. |
Соблазн
Т.е. его можно просто удалить из тела скрипта? Или нужно заменить на notepad? И из настройки кнопки убрать "%COMMANDER_PATH%\Programs\AkelPad\akelpad.exe "?
Как в таком случае будет выглядеть скрипт и параметры кнопки? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon May 27, 2013 19:28 Post subject: |
|
|
KarS
Пожалуйста.
Всё утыкается в необходимость открытия. Если открытие нужно в AkelPad, то лучше оставить как есть. Если не нужно или нужно открывать в дефолтном редакторе для txt, то перепишу код.
Лично мне по душе мой сценарий с самостоятельным указанием имени файла. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
KarS
Joined: 21 Apr 2006 Posts: 102 Location: г. Абакан
|
(Separately) Posted: Tue May 28, 2013 17:32 Post subject: |
|
|
Flasher, спасибо, что поддерживаете обсуждение.
В принципе AkelPad - меня устраивает. Сохраняя из него можно изменить кодировку при необходимости.
Попробовал Ваш скрипт.
Для моего типа задач с ним работать мне показалось пока не очень удобно: надо постоянно вручную вводить имя и дополнять цифры 01, 02, 03...
Т.е. это разные типы задач:
1) создать файл с именем, совпадающим с именем файла, находящегося под курсором.
2) создавать серию файлов с одинаковыми названиями, но отличной нумерацией.
Хотел было предложить объединить функции Вашего скрипта и скрипта от Бати, но передумал. Эта проблема должна решаться пользователем в голове, а не скриптом.
А вот для доработки Вашего скрипта, если не возражаете, есть предложение.
Предусмотреть настройку дефолтного имени создаваемого файла:
а) если курсор находиться не на файле, а вверху на месте перехода в директорию (сейчас никакого имени не предлагается), то желательно предлагать это дефолтное имя;
б) если курсор перед запуском скрипта находился на файле, то по Вашему сценарию предлагается имя этого файла. Можно ввести правило, если пользователь очистил окно ввода одним нажатием (Backspace или Del), то скрипт создаёт файл с настроенным дефолтным именем. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue May 28, 2013 19:26 Post subject: |
|
|
KarS wrote: | Сохраняя из него можно изменить кодировку при необходимости. | Кодировку и в скрипте можно сменить.
KarS wrote: | Т.е. это разные типы задач | Я не пишу, что они одинаковые. Я пишу о своих предпочтениях. Мне нужно всегда вводить определённое имя для идентификации. Нумерацию я использую только при создании группы дублей.
KarS wrote: | создавать серию файлов с одинаковыми названиями, но отличной нумерацией | Не понял. Тут нет никакой серии. Тут только один файл создаётся.
По моему скрипту пишем в соотв. топик. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
KarS
Joined: 21 Apr 2006 Posts: 102 Location: г. Абакан
|
(Separately) Posted: Wed May 29, 2013 17:19 Post subject: |
|
|
Когда я писал о разных типах задач, то имел в виду свои ситуации, с которыми я часто встречаюсь.
Конечно, Ваш скрипт решает только первый тип задач.
Чтобы не усложнять разработку скрипта, я и остановился на том, что буду в своей работе использовать два скрипта: один Ваш, а второй от Бати. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed May 29, 2013 20:28 Post subject: |
|
|
KarS wrote: | Чтобы не усложнять разработку скрипта | Какого скрипта? Пока ничего не предлагалось в плане разработки. Объединение, работа с выделенным списком, указания числа пустышек. Вот это была бы конкретика.
Что касаемо дефолтного имени при нахождении на элементе [..], то можно отдельным параметром сделать, поскольку неясно, что кому может понадобиться.
А вот при очистке строки создавать дефолтное имя не буду, поскольку это равносильно закрытию окна по Esc, Отмене, [x]. Разделить эти вещи нельзя. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
KarS
Joined: 21 Apr 2006 Posts: 102 Location: г. Абакан
|
(Separately) Posted: Fri May 31, 2013 18:39 Post subject: |
|
|
Всё воспринимаю как есть.
Если кроме меня никому не надо, то и не предлагаю пока ничего.
Неудобно Вас отвлекать.
Итак спасибо, за то, что уже поправили. |
|
Back to top |
|
|
Dioxin
Joined: 21 Apr 2013 Posts: 2
|
(Separately) Posted: Tue Jul 28, 2015 13:32 Post subject: |
|
|
Добрый день. Столкнулся с такой проблемкой: создал кнопку на панели TC, скрипт использовал такой же, как приведен выше, только в пятой строчке дописал /C+ чтобы не было диалога подтверждения создания файла. Так вот, всё нормально работает, пока в имени папки, в которой нужно создать файл, не появляется пробел. Например, текстовый файл нужно создать в папке D:\te st, а файл создается в корне диска D да еще и с именем te без расширения. И при всём при этом в папке С:\Program Files всё корректно создается. В папке f:\Install\1С 8.2 создается, в папке e:\AppData\Downloads\FolderSizes 7.5.30 Enterprise Portable не создается. Пока писал эти строки создал на диске D папки Install\1С 8.2. Так вот в папке d:\Install\1С 8.2 скрипт не работает. На всякий случай проверил права доступа, всё в порядке, всем, пользователям, админам, прошедшим проверку и своей учетке полный доступ, моя учетка является владельцем. В папке f:\Install\Точка доступа из ПК\ создается, скопировал ее в TC со всеми правами на диск D - там уже не создается. Грешил на корявую сборку AkelPad'а, заменил на другую - результат такой же. Убрал скрипт из кнопки TC, файл создается всегда и везде (ну только автоматической нумерации нет). Win 7 SP1 x64, TC 8.51a (x86, да и в x64 тоже самое наблюдается), AkelPad 7.9.4 x86, учетка с админскими правами, разделы NTFS. Вот такая у меня петрушка. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|