Мне нужен скрипт AHK, который создает:
- папка в текущей открытой папке в проводнике Windows (в Windows 7),
- чье имя состоит
- текущая дата в формате (
yyyy-mm-dd
) - текст, который в данный момент находится в буфере обмена
- текущая дата в формате (
- вновь созданная папка должна содержать 3 подпапки с именами «1», «2» и «3».
Я хочу скопировать несколько слов (например Testing Testing Testing
, ) из другого приложения, перейти в папку на жестком диске (используя проводник Windows), активировать горячую клавишу, и AHK создаст для меня папку с именем:
2012-06-04 Testing Testing Testing
с подпапками «1», «2» и «3».
решение1
Сценарий
#c::
WinGetClass, WinClass, A
if (WinClass = "CabinetWClass")
{
FormatTime, CurrentDate,, yy-MM-dd
CustomText = %Clipboard%
Clipboard =
SendPlay, !d^c
ClipWait, 1
If ErrorLevel
{
MsgBox, Could not read directory name.
return
}
CurrentDir = %Clipboard%
Clipboard = %CustomText%
NewDir = %CurrentDir%\%CurrentDate% %CustomText%
Run, cmd /c (md "%NewDir%" || pause) && md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"
}
else
SendPlay, #c
return
Как это работает
#c:: ... return
определяет комбинацию клавиш (здесь: Win+ C) и выполняет ее...
при нажатии.WinGetClass, WinClass, A
сохраняет заголовок текущего активного окна в переменнойWinClass
.if (WinClass = "CabinetWClass") { ... }
проверьте,WinClass
есть лиCabinetWClass
(класс проводника Windows).Если да:,
...
выполняется. В противном случаеSendPlay, #c
эмулирует обычный Win+ Cштрих.FormatTime, CurrentDate,, yy-MM-dd
сохраняет текущую дату (YY-MM-DD
) в переменнойCurrentDate
.Clipboard =
очищает буфер обмена, чтобы мы могли проверить, когда в него что-то копируется.CustomText = %Clipboard%
копирует текущее содержимое буфера обмена в переменнуюCustomText
.SendPlay, !d^c
выбирает адресную строку и копирует ее содержимое в буфер обмена.ClipWait, 1
ожидает в течение одной секунды, пока буфер обмена не будет содержать какие-либо данные.If ErrorLevel { ... }
проверяет, содержит ли буфер обмена какие-либо данные.Если этого не происходит, скрипт прерывается.
CurrentDir = %Clipboard%
копирует текущее содержимое буфера обмена в переменнуюCurrentDir
.Clipboard = %CustomText%
возвращает буфер обмена к исходному значению.NewDir = %CurrentDir%\%CurrentDate% %CustomText%
указывает имя нового каталога.Run, cmd /c ...
выполняет команду...
и затем выходит.(md "%NewDir%" || pause)
пытается создать%NewDir%
. В случае неудачи он останавливается, и вы можете увидеть сообщение об ошибке.md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"
создает 3 подкаталога.