Поработав немного, я нашел способ добавить базовую версию, просто отредактировав реестр.Он не запрашивает имя (он просто использует базовый формат ДД.ММ.ГГГГ ЧЧ; ММ; СС) и не входит в режим переименования проводника:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\.NewDirectoryBasedOnDate]
@="NewDirectoryBasedOnDate"
[HKEY_CURRENT_USER\Software\Classes\.NewDirectoryBasedOnDate\ShellNew]
"Command"="\"CMD\" /D /E:ON /c for /F \"tokens=1-9 delims=.,\\:/\" %%A IN (\"%%date%%.%%time%%\") DO for /F \"tokens=*\" %%a IN (\"%1\") do md \"%%~dpa\\%%A.%%B.%%C %%D;%%E;%%F\""
"nullfile"=hex:
[HKEY_CURRENT_USER\Software\Classes\NewDirectoryBasedOnDate]
"FriendlyTypeName"="Directory Based On Date"
[HKEY_CURRENT_USER\Software\Classes\NewDirectoryBasedOnDate\DefaultIcon]
@="shell32.dll,3"
[HKEY_CURRENT_USER\Software\Classes\NewDirectoryBasedOnDate\Shell\open]
"LegacyDisable"=hex:
[HKEY_CURRENT_USER\Software\Classes\NewDirectoryBasedOnDate\Shell\open\command]
@="."
Я только протестировал это на WinXP, и это немного хакерский (мне пришлось добавить поддельную клавишу Shell\open\command
, чтобы появился новый пункт меню)
Изменив команду на wscript.exe //nologo "C:\path\to\NewDateDir.wsf" "%1"
исохраняя следующий код в NewDateDir.wsf, вы получите следующее:
<?xml version="1.0" ?><job><script language="VBScript"><![CDATA[
if WScript.Arguments.Count < 1 then
MsgBox("Bad parameter!")
WScript.Quit(1)
end if
Set FSO=CreateObject("Scripting.FileSystemObject")
Function StrFilter(s,ch,rep)
StrFilter=Join(Split(s,ch,-1),rep)
End Function
basedir=FSO.GetParentFolderName(WScript.Arguments(0))
defname=Date&" "&Time
defname=StrFilter(defname,"/",".")
defname=StrFilter(defname,":",";")
name=InputBox("New folder in "&basedir,"New folder",defname)
if not IsEmpty(name) and Len(name) > 0 then
FSO.CreateFolder(FSO.BuildPath(basedir,name))
end if
]]></script></job>
Даже если вы решите написать расширение оболочки, я думаю, что активация режима переименования проводников будетбыть тяжелым, особенно если вы хотите частичный отбор.Вы также должны помнить, что другие программы могут реализовывать контекстные меню оболочки, поэтому вы не можете использовать все виды недокументированных проводников.