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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] как добавить описание к файлу из контекстного меню

Ветеран


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


Конфигурация

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


нужен скрипт, при выполнении которого по правой клавише мыши из контекстного меню создается текстовый файл в который можно вставить описание и сохраняется с именем выделенного файла

Отправлено: 18:13, 18-03-2011

 

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


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

Профиль | Отправить 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
Благодарности: 564

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


OSArev, Благодарствую.

Отправлено: 14:00, 22-03-2011 | #12


Новый участник


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

Профиль | Отправить 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
Благодарности: 564

Профиль | Отправить 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
Благодарности: 564

Профиль | Отправить 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
Благодарности: 0

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


Вложения
Тип файла: zip вРеестрОписаниеДляПапки.zip
(994 байт, 2 просмотров)
Тип файла: 7z opisanie.7z
(843 байт, 1 просмотров)

Цитата OSArev:
контекстном меню для папок »
Итак. Создаём ключ для добавления в контекстном меню папок опции "ДОБАВИТЬ ОПИСАНИЕ"
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shell\FileNoter\command]
@="wscript.exe c:\\Windows\\opisanie.vbs \"%1\""
В результате выполнения c:\Windows\opisanie.vbs если путь с пробелами и в кириллице, получим файл рядом с папкой что-то типа 02()10~1.txt

Вопрос. Как названию Файла присвоить имя как у папки до 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
Благодарности: 564

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


Цитата HORiSi:
Как названию Файла присвоить имя как у папки »
в bat это так:
Код: Выделить весь код
@echo off
set "d=C:\Имя папки.с точкой"

call :# "%d%"
pause& exit

:# "%d%"
  for %%a in ("%~1.") do break>"%%~nxa.txt"
exit /b

Отправлено: 01:27, 15-09-2021 | #17


Новый участник


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

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


Вложения
Тип файла: 7z вРеестрОписаниеДляПапки+Файла.7z
(1.3 Kb, 1 просмотров)

Цитата 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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход