![]() |
как добавить описание к файлу из контекстного меню
нужен скрипт, при выполнении которого по правой клавише мыши из контекстного меню создается текстовый файл в который можно вставить описание и сохраняется с именем выделенного файла
|
Обязательно скрипт? А программа FileNote (FileNote - добавляет пункт к контекстному меню, который позволяет создать текстовый файл с тем же именем, что и тот, который у Вас выделен. После этого автоматически открывает этот файл в Notepad для редактирования.) не пойдёт?
|
alpap , почему бы тебе не воспользоватся рекомендацией Cortina ?
Надеюсь, что тебе просто интересно как это на VBS, поэтому держи...Подправишь сам. У меня длинновато получилось ,но зато работает с именами, содержащими не одну точку, а также для расширений не равных трём символам. Если, кто знает, как добиться этого по другому, пожалуйста поделитесь. Код:
'------------------------------------------------------------------------- |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Код:
Set FSO = CreateObject("Scripting.FileSystemObject") |
|
Iska, спасибо! Ты подтолкнул меня в новую(нужную) сторону.
|
OSArev, дело в том, что FileNote создает текстовик в стандартном блокноте, а у меня стоит AkelPad и хочется чтобы в нем, сохранять быстрее, в нем мышь по умолчанию становится на кнопку "ок", а в блокноте нет, да и не хочу вообще его видеть. После сохранения уже, правда, открывается в AkelPad. Не видит почему-то FileNote AkelPad, в DLL посмотрел - нет там возможности изменить путь - это и есть проблема моя, а еще хочется чтобы можно было добавить описание и папкам, если бы эта программа была exeшником я бы это сделал в конт. меню, а так, кроме DLLки нет ничего, я же к ней путь не укажу, толку с того, сам скрипт нужен.
|
alpap, Вы не рассматривали вопрос о переходе к работе с каким-либо файловым менеджером, где, как правило, сие давно реализовано («Ctrl-Z» в Far Manager и в TotalCommander)?
|
alpap для папок почти тоже самое. Прописать надо, соответстственно, в контекстном меню для папок:
Код:
Set FSO = CreateObject("Scripting.FileSystemObject") |
OSArev, Благодарствую.
|
Не смог правильно написать скрипт и прописать в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\ (какой параметр создавать? как прописывать сам скрип? в значение по умолчанию или как....)
Поэтому (ну мало ли) здесь же на форуме , некто TWC нарыл в недрах Интернета аналог Filenote, работающий в Windows 7 64bit. Как говориться "встречайте: FileNoter v091205. " От себя. Поскольку FileNoter являет собой исполняемый файл, то архив надо распаковать там, где не сотрётся (например, c:\Windows\FiLENOTER. Иначе получите ошибку "Файл не найден") и запустить. |
Долго здесь не появлялся!
Хочу закрыть эту тему. Сделал три скрипта по поводу добавления описания как к любому файлу так и к папке, причем к папке - один в саму папку с тем же именем другой так же но рядом. 1. к файлу @echo off cd /d "%~dp2" @echo off > "%~n2.txt" start "" "%~n2.txt" exit 2. к папке в папку @echo off cd /d "%~dp2" set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% for /d %%a in ("%slesh%") do set imja=%%~na @echo off > "%imja%.txt" start "" "%imja%.txt" exit 3. к папке рядом @echo off cd /d "%~dp2.." set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% for /d %%a in ("%slesh%") do set imja=%%~na @echo off > "%imja%.txt" start "" "%imja%.txt" exit Почему у меня %~dp[2], n[2]? Я использую стороннюю программу для контектного меню (у меня ОС Windows 7 x86 - админ) В программе (моей) указывается путь к .bat и выбор показа меню для файла/папки - в обычном меню в реестре это надо разделить, есть такая информация в интернете и здесь и немало. Сам батник где угодно лучше где-то на С:\ - у меня в программах, сейчас на рабочем столе - путь меняю и все. Естественно будет работать в любой Windows это же просто батник. Если будете через реестр ставить в родное конт. меню будет наверное цифра 1 в %~dp[2], n[2], подправьте кто в теме. Все работает как часы с любыми именами пробелами путями - проверялось. |
Хочу добавить, если скачать стороннюю утилиту для работы с буфером, то можно еще упростить все, достаточно скопировать в буфер текст и нажатию кнопки в контекстном меню он автоматически будет вставлен в .txt и сохранен рядом с файлом папкой или в папке.
Утилита http://vb.mvps.org/tools/ConClip 1. к файлу из буфера @echo off cd /d "%~dp2" @echo off > "%~n2.txt" "C:\Program Files\Bat\GetClip.exe" > "%~n2.txt" exit 2. к папке в папку из буфера @echo off cd /d "%~dp2" set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% for /d %%a in ("%slesh%") do set imja=%%~na @echo off > "%imja%.txt" "C:\Program Files\Bat\GetClip.exe" > "%imja%.txt" exit 3. к папке рядом из буфера @echo off cd /d "%~dp2.." set slesh=%~dp2 If "%slesh:~-1%"=="\" set slesh=%slesh:~0,-1% for /d %%a in ("%slesh%") do set imja=%%~na @echo off > "%imja%.txt" "C:\Program Files\Bat\GetClip.exe" > "%imja%.txt" exit У меня эта утилита по адресу: "C:\Program Files\Bat\GetClip.exe", вы же можете положить куда угодно в пределах С:\ |
Вложений: 2
Цитата:
Код:
Windows Registry Editor Version 5.00 Вопрос. Как названию Файла присвоить имя как у папки до 1-й точки (если такая есть в названии)? Ответ. Чтобы получить полное имя папки используем в переменной NME=folder.Name Итоговый скрип opisanie.7z
Код:
' В реестре для папок прописать путь к скрипту: |
Цитата:
Код:
@echo off |
Вложений: 1
Цитата:
Цитата:
Собрал reg и два vbs: один для добавления описания к папке, другой – для файлов Для работы «описаний»: 1. положить файлы vbs в C:\Windows 2. запустить вРеестрОписание.reg вРеестрОписаниеДляПапки+Файла.7z
opisanie.vbs
opisaniefaila.vbs вРеестрОписание.reg opisanie.vbs
' http://forum.oszone.net/post-1640513-11.html ' В реестре для папок прописать путь к скрипту: ' [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\FileNoter\command] ' @="wscript.exe c:\\Windows\\opisanie.vbs \"%1\"" Set FSO = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") '---------------------------------------------------- If WScript.Arguments.Count = 1 Then sFolder = WScript.Arguments.Item(0) End If Set Folder = FSO.GetFolder(sFolder) '------------------------------------- 'Путь для создания PathName = FSO.GetParentFolderName(sFolder) '---------------------- ' Полное имя папки ' если нужно короткое, то меняем на строку ' NME=folder.ShortName NME=folder.Name '----------------------------------------------- 'Создание 'Проверка с тем же именем, что и папка, и если он существует – открытие файла 'Если тебе проверки не нужны оставь только строку ' fso.CreateTextFile(PathName & "\" & NME & ".txt") If FSO.FileExists(PathName & "\" & NME & ".txt") Then WScript.Echo "Документ ''"& NME & ".txt" & "'' - уже существует." WshShell.Run("Explorer" &" " & PathName & "\" & NME & ".txt") WScript.Quit 0 Else fso.CreateTextFile(PathName & "\" & NME & ".txt") ' fso.CreateTextFile(objFSO.BuildPath(PathName, NME & ".txt")) End If WshShell.Run("Explorer" &" " & PathName & "\" & NME & ".txt") opisaniefaila.vbs
' http://forum.oszone.net/post-1640513-11.html Set FSO = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") '-------------------------------------------------------------------- ' Определение полного имени If WScript.Arguments.Count = 1 Then sFile = WScript.Arguments.Item(0) Set fso = CreateObject("Scripting.FileSystemObject") End If '---------------------------------------- 'Короткое имя, без расширения NME= FSO.GetBaseName(sFile) '------------------------------------------------ 'Путь для создания PathName = FSO.GetParentFolderName(sFile) '------------------------------------------------------------ 'Создание '----------------------------------------------- 'Создание 'Проверка с тем же именем, что и папка, и если он существует – открытие файла 'Если тебе проверки не нужны оставь только строку ' fso.CreateTextFile(PathName & "\" & Name & ".txt") If FSO.FileExists(PathName & "\" & NME & ".txt") Then WScript.Echo "Документ ''"& NME & ".txt" & "'' - уже существует." WshShell.Run("Explorer" &" " & PathName & "\" & NME & ".txt") WScript.Quit 0 Else fso.CreateTextFile(PathName & "\" & NME & ".txt") ' fso.CreateTextFile(objFSO.BuildPath(PathName, NME & ".txt")) End If WshShell.Run("Explorer" &" " & PathName & "\" & NME & ".txt") вРеестрОписание.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\opisanie] @="ДОБАВИТЬ ОПИСАНИЕ" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\opisanie\command] @="wscript.exe c:\\Windows\\opisanie.vbs \"%1\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\opisaniefaila] @="ОПИСАНИЕ ФАЙЛА" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\opisaniefaila\command] @="wscript.exe c:\\Windows\\opisaniefaila.vbs \"%1\"" |
Время: 21:46. |
Время: 21:46.
© OSzone.net 2001-