用户需求:新建一个文件夹,名称自动以月份和日期命名,如12-02,如已经有这名字的文件夹,则用12-02a......类推


[AHK]如何以当前日期为目录名新建目录_当前目录

实现:

#z::
d =%A_MM%-%A_DD%
FileCreateDir, d:\%d%
Sleep,200
run d:\%d%
return




用户反馈:可以新建一个,不能第二个,还有,只能在D盘下,要能在当前窗口的路径下


在当前目录下新建日期目录 
#z::
Send,!d
ControlGetText,foldername,Edit1,A
d=%A_MM%-%A_DD%
d=%foldername%\%d%
FileCreateDir, %d%
Sleep,200
run %d%
return



做一次同名目录存在检测


#z::
Send,!d
ControlGetText,foldername,Edit1,A
d=%A_MM%-%A_DD%
d=%foldername%\%d%

if InStr(FileExist(d), "D")
{
	;已存在同名目录
	d=%d%_a
}
FileCreateDir, %d%
Sleep,200
run %d%



这个变量d建议改个名字

#z::
Send,!d
ControlGetText,当前目录,Edit1,A
目录名=%A_MM%-%A_DD%
最终目录名=%当前目录%\%目录名%

if InStr(FileExist(最终目录名), "D")
{
	;已存在同名目录
	最终目录名=%最终目录名%_a
}
FileCreateDir, %最终目录名%
Sleep,200
run %最终目录名%
return



吐槽:CSDN不支持AutoHotkey代码高亮,来个截图,能看得清楚点:


[AHK]如何以当前日期为目录名新建目录_后缀_02


实现用户需求版
#z::
Send,!d
ControlGetText,当前目录,Edit1,A
目录名=%A_MM%-%A_DD%
最终目录名=%当前目录%\%目录名%
临时目录名=%最终目录名%
while InStr(FileExist(临时目录名), "D")
{
	后缀:=Chr(96+A_index)
	临时目录名=%最终目录名%_%后缀%
}
最终目录名=%临时目录名%
FileCreateDir, %最终目录名%
Sleep,200
run %最终目录名%
return



用户反馈:在桌面新建时跑到C盘了,另外可以不要弹出新窗口吗?

最终版
#z::
当前目录:= A_Desktop
WinGetClass class, ahk_id WinExist("A")
 if (class ~= "(Cabinet|Explore)WClass") {
	Send,!d
	ControlGetText,当前目录,Edit1,A
}
目录名=%A_MM%-%A_DD%
最终目录名=%当前目录%\%目录名%
临时目录名=%最终目录名%
while InStr(FileExist(临时目录名), "D")
{
	后缀:=Chr(96+A_index)
	临时目录名=%最终目录名%_%后缀%
}
最终目录名=%临时目录名%
FileCreateDir, %最终目录名%
;~ Sleep,200
;~ run %最终目录名%
return