打开 cmd 提示符并手动发出我的自定义 doskey 宏命令可以正常工作,但我认为通过创建自动调用这些命令的 cmd 快捷方式可以节省时间。
因此,我创建了 2 个 cmd 快捷方式,可从目标字段自动运行这些 doskey 宏:
%windir%\system32\cmd.exe /k m7
和
%windir%\system32\cmd.exe /k m50
运行快捷方式显示以下错误消息:
'm5' is not recognized as an internal or external command
和
'm50' is not recognized as an internal or external command
但是,常规 cmd 命令在目标字段中指定时才有效:
%windir%\system32\cmd.exe /k dir
我必须做什么才能使其与 doskey 别名命令一起工作?顺便说一句,我确保每个快捷方式都以管理员身份运行。并且我的所有 doskey 宏都已加载到注册表中,以便在 cmd 会话之间保持内存持久性。谢谢。
doskey cmd 文件:
alsias.cmd:
@echo off
doskey m7=C:\Bin\m7connect.cmd
doskey m50=C:\Bin\m50connect.cmd
m7connect.cmd:
@echo off
adb disconnect
adb connect 192.168.1.7
timeout /t 1 /nobreak
scrcpy
m50连接.cmd:
@echo off
adb disconnect
adb connect 192.168.1.8
timeout /t 1 /nobreak
scrcpy
答案1
你不能打电话给DOSKEY宏以这样的方式。
为了证明,请将您的快捷方式目标更改为例如
%windir%\system32\cmd.exe /k "doskey /macros & m50"
我猜想所有宏都已列出,但错误发生了。但是,您可以在打开的提示窗口'm50' is not recognized …
中手动成功调用宏( )吗?cmd
m50
Enter
读CMD.EXE
以及(没有选择DOSKEY宏作为Command
):
Syntax
CMD [charset] [options]
CMD [charset] [options] [/C Command]
CMD [charset] [options] [/K Command]
Options
/C Run Command and then terminate
/K Run Command and then return to the CMD prompt.
This is useful for testing, to examine variables
Command : The command, program or batch script to be run.
解决方案:在快捷方式目标中使用操作cmd
s 代替其 DOSKEY 宏名称:
%windir%\system32\cmd.exe /k "C:\Bin\m7connect.cmd"
和
%windir%\system32\cmd.exe /k "C:\Bin\m50connect.cmd"
分别而不是%windir%\system32\cmd.exe /k m7
和%windir%\system32\cmd.exe /k m50
。
答案2
为什么不直接使用.bat 文件来代替宏呢?
例如,每次调用终端或命令提示符时,命令提示符启动目录中的 autoexec.bat 文件都会自动执行您的 doskey。
C:\Users\[用户名]>notepad autoexec.bat
在 notepad.exe 中执行以下几行
REM Turn on DOSKEY (Comment)
@ECHO OFF (@ suppresses display of dos commands including echo off command)
DOSKEY (invoke doskey)
关闭终端并重新启动。每次在默认启动目录中启动终端时,这将运行 autoexec.bat 文件。
其他批处理命令也可以作为 .bat 文件保存在您选择的目录中
例如:
C:\Users\[用户名]>notepad connect.bat
@echo off
adb disconnect
adb connect 192.168.1.7
timeout /t 1 /nobreak
scrcpy
要调用此批处理文件类型 C:Users\[用户名]\someDirectory>C:Users\[用户名]\connect.bat
或者直接添加C:Users\[用户名]到 asutoexec.bat 文件中的路径
为什么要用宏来让事情变得复杂?以前人们避免使用 autoexec.bat 来节省内存并保持速度。当内存只有 640kb 时,这一点很重要。在拥有 GB 可用内存的现代系统中,内存并不是一个真正的问题。