Windows 批处理文件:如何从自身附加到 *.bat 或 *.cmd 文件?
Windows Batch Files: How can I append to a *.bat or *.cmd file from within itself?
我正在尝试对 this SO answer 中@Argyll 提供的代码进行轻微修改,特别是更改:
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd
至:
doskey alias=echo doskey $*>>%0
但是当我使用这个新别名时重定向失败,我只是像往常一样将 doskey <whatever I typed after alias>
回显到控制台:-(
如您所知,我是一个批处理脚本菜鸟,所以我做错了什么?国际机场 :-)
您需要逃避重定向,否则在您调用 doskey alias=echo doskey $*>>%0
时重定向处于活动状态,它将 doskey 命令的输出(在这种情况下始终为空)附加到当前批处理文件。
但是如果你将你的行修改为
doskey alias=echo doskey $*^>^> "%~f0"
这将创建一个名为 alias
的宏,如
alias=echo doskey $* >> C:\myfull\path\to\myBatch.bat
我使用 %~f0
作为完整路径,否则宏可以定义为
alias=echo doskey $* >> myBatch.bat
如果你不在正确的目录中,那显然会失败
我正在尝试对 this SO answer 中@Argyll 提供的代码进行轻微修改,特别是更改:
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd
至:
doskey alias=echo doskey $*>>%0
但是当我使用这个新别名时重定向失败,我只是像往常一样将 doskey <whatever I typed after alias>
回显到控制台:-(
如您所知,我是一个批处理脚本菜鸟,所以我做错了什么?国际机场 :-)
您需要逃避重定向,否则在您调用 doskey alias=echo doskey $*>>%0
时重定向处于活动状态,它将 doskey 命令的输出(在这种情况下始终为空)附加到当前批处理文件。
但是如果你将你的行修改为
doskey alias=echo doskey $*^>^> "%~f0"
这将创建一个名为 alias
的宏,如
alias=echo doskey $* >> C:\myfull\path\to\myBatch.bat
我使用 %~f0
作为完整路径,否则宏可以定义为
alias=echo doskey $* >> myBatch.bat
如果你不在正确的目录中,那显然会失败