|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] как добавить описание к файлу из контекстного меню |
|
VBS/WSH/JS - [решено] как добавить описание к файлу из контекстного меню
|
Ветеран Сообщения: 1274 |
нужен скрипт, при выполнении которого по правой клавише мыши из контекстного меню создается текстовый файл в который можно вставить описание и сохраняется с именем выделенного файла
|
|
Отправлено: 18:13, 18-03-2011 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать alpap для папок почти тоже самое. Прописать надо, соответстственно, в контекстном меню для папок:
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) '---------------------- ' Имя папки Name=folder.ShortName '----------------------------------------------- 'Создание 'Здесь я добавил проверку и открытие файла, (мне так удобнее). 'Если тебе проверки не нужны оставь только строку fso.CreateTextFile(PathName & "\" & Name & ".txt") If FSO.FileExists(PathName & "\" & Name & ".txt") Then WScript.Echo "Документ ''"& Name & ".txt" & "'' - уже существует." WshShell.Run("Explorer" &" " & PathName & "\" & Name & ".txt") WScript.Quit 0 Else fso.CreateTextFile(PathName & "\" & Name & ".txt") End If WshShell.Run("Explorer" &" " & PathName & "\" & Name & ".txt") |
Отправлено: 22:33, 21-03-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать OSArev, Благодарствую.
|
Отправлено: 14:00, 22-03-2011 | #12 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Не смог правильно написать скрипт и прописать в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\ (какой параметр создавать? как прописывать сам скрип? в значение по умолчанию или как....)
Поэтому (ну мало ли) здесь же на форуме , некто TWC нарыл в недрах Интернета аналог Filenote, работающий в Windows 7 64bit. Как говориться "встречайте: FileNoter v091205. " От себя. Поскольку FileNoter являет собой исполняемый файл, то архив надо распаковать там, где не сотрётся (например, c:\Windows\FiLENOTER. Иначе получите ошибку "Файл не найден") и запустить. |
Последний раз редактировалось HORiSi, 08-07-2014 в 13:55. Отправлено: 22:59, 04-07-2014 | #13 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Долго здесь не появлялся!
Хочу закрыть эту тему. Сделал три скрипта по поводу добавления описания как к любому файлу так и к папке, причем к папке - один в саму папку с тем же именем другой так же но рядом. 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], подправьте кто в теме. Все работает как часы с любыми именами пробелами путями - проверялось. |
Последний раз редактировалось alpap, 28-05-2015 в 10:02. Отправлено: 19:45, 12-05-2015 | #14 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Хочу добавить, если скачать стороннюю утилиту для работы с буфером, то можно еще упростить все, достаточно скопировать в буфер текст и нажатию кнопки в контекстном меню он автоматически будет вставлен в .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", вы же можете положить куда угодно в пределах С:\ |
Отправлено: 18:44, 14-05-2015 | #15 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата OSArev:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\FileNoter\command] @="wscript.exe c:\\Windows\\opisanie.vbs \"%1\"" Вопрос. Как названию Файла присвоить имя как у папки до 1-й точки (если такая есть в названии)? Ответ. Чтобы получить полное имя папки используем в переменной NME=folder.Name Итоговый скрип opisanie.7z
' В реестре для папок прописать путь к скрипту: ' [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") End If WshShell.Run("Explorer" &" " & PathName & "\" & NME & ".txt") |
|
Последний раз редактировалось HORiSi, 14-09-2021 в 10:05. Причина: нашёл решение Отправлено: 08:39, 14-09-2021 | #16 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата HORiSi:
|
|
Отправлено: 01:27, 15-09-2021 | #17 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата OSArev:
Цитата HORiSi:
Собрал 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\"" |
||
Отправлено: 08:21, 12-06-2023 | #18 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] добавить описание к файлу из контекстного меню | alpap | Хочу все знать | 22 | 23-07-2018 22:59 | |
Интерфейс - [решено] Как сделать скриншот контекстного меню? | studentandr | Microsoft Windows 2000/XP | 8 | 23-04-2014 10:04 | |
Блог - Как добавить раскрывающееся меню в контекстное меню рабочего стола и компьютера | Vadikan | Microsoft Windows 7 | 7 | 13-12-2010 17:43 | |
[решено] Как убрать одинаковые ярлыки из контекстного меню? | Moandor | Microsoft Windows 95/98/Me (архив) | 2 | 10-12-2009 11:58 | |
Разное - [решено] Как удалить из контекстного меню | olezhka34 | Microsoft Windows 2000/XP | 2 | 25-09-2008 21:00 |
|