在 Windows 7 中,最终我想绑定一个快捷键 ( Ctrl++ Alt)D来吐出表单的日期时间戳20120913 1232
。
我要挂断的步骤是让批处理文件向我的文本光标写入任何内容。目前我正在将它传送到clip.exe,然后我粘贴,但我想消除剪贴板的中间步骤。如果这是不可能的,还有其他方法可以解决我的问题吗?
echo %date:~-4%%date:~4,2%%date:~7,2% %time:~0,2%%time:~3,2% | clip
在 Windows 7 中,最终我想绑定一个快捷键 ( Ctrl++ Alt)D来吐出表单的日期时间戳20120913 1232
。
我要挂断的步骤是让批处理文件向我的文本光标写入任何内容。目前我正在将它传送到clip.exe,然后我粘贴,但我想消除剪贴板的中间步骤。如果这是不可能的,还有其他方法可以解决我的问题吗?
echo %date:~-4%%date:~4,2%%date:~7,2% %time:~0,2%%time:~3,2% | clip
您无法从 cmd 执行此操作。您需要使用 VBS、Js 或 PowerShell。这是一个简单的 VBS 脚本,可以满足您的需求。只需在运行此 VBS 文件的桌面上创建一个快捷方式并为其分配一个快捷键
Set WshShell = WScript.CreateObject("WScript.Shell")
' Switch back to the previous window. Use Alt+Esc because Alt+Tab sometimes doesn't work
' WshShell.SendKeys "%{TAB}", True
WshShell.SendKeys "%{ESC}", True
' Get the time string
Dim dt, datetime_str
dt = now
datetime_str = Year(dt) & Right("0" & Month(dt), 2) & Right("0" & Day(dt), 2)
datetime_str = datetime_str & " " & Right("0" & Hour(dt), 2) & Right("0" & Minute(dt), 2)
' Send the date string to the target window
WshShell.SendKeys datetime_str
然而, Autohotkey (AHK) 将是一个更好的解决方案并且运行速度更快。下面是 2 个示例函数,它们将向当前应用程序键入日期时间字符串
; Map Ctrl+Alt+T to send the date string
^!t::
FormatTime, currentdate,, yyyyMMdd HHmm
SendInput %currentdate%
Return
; Map Ctrl+Alt+D to send the date string
^!D::
SendInput %A_YYYY%%A_MM%%A_DD% %A_Hour%%A_Min%
Return
将上述脚本另存为 *.ahk 并运行它。AHK 将在后台运行并听取按键序列以执行所需的操作
对于 OP/任何有兴趣的人:http: //ahkscript.org
自动热键可能是您所追求的。香草补充 cmd .bat 或独立的 AHK 脚本应该能够从 STDOUT 中提取数据并设置您的日期语法,并从 1 个脚本中全部设置热键。
这个问题的“热键”部分可能是为什么它以前没有得到回答,而不是可以在 Windows CLI afaik 中完成的事情,你需要“快捷键重新映射软件”,这正是 Auto Hotkey 的设计用途:)
自从我研究 Windows 中的快捷键重新映射以来已经有很长时间了,但我确实记得 AHK 只是少数能够重新映射硬编码快捷键组合(如 WinKey + R)的程序,除非您自己编写一个(使用 C++ 或类似代码)
我还建议彻底挖掘 Rob van der Woude 的网站,特别是关于重定向的 2 篇文章:
http://www.robvanderwoude.com/battech_redirection.php
底部是指向“重定向概述页面”的链接,这是重定向命令/语法的一个特别好的“备忘单”。