【问题标题】:How to change a Command to your own one如何将命令更改为您自己的命令
【发布时间】:2018-08-25 15:50:44
【问题描述】:

我希望echo 命令为say 或其他代码,代码将类似于say("Hello World"); 等等,但该怎么做?

这是我测试的:

这是一个名为“Config.ini”的文件

set echo=say
set cls=CLear
set @echo off=#Screen

在“Main.bat”文件中

#Screen
for /f "eol=- delims=" %%a in (Config.ini) do set "%%a"
CLear
say Hello
pause

我试过了,但没用,有谁知道如何创建自己的编程语言或至少用批处理文件更改一些命令?

-谢谢!

【问题讨论】:

  • 您正在向后设置变量并且您没有正确调用它们。查看set /? 的输出。此外,由于 .ini 文件和 .bat 文件中有 set,因此脚本正在读取 set set echo=say
  • 创建自己的编程语言?好吧,您正在做的事情远非如此。您只是在一种非常高级的现有脚本语言中创建变量。
  • 话虽如此,你set 的值是错误的。你不能在获取变量之前调用#screen,因为它们还不是set,因为它只是for循环内的set
  • “重命名”内部命令:没办法。 (外部命令:是的,但肯定不是可取的)另一种想法:构建一个“编译器”来翻译你的命令(sayclear#Screen' ...) to the corresponding cmd` 命令(并调整语法)。一个雄心勃勃的项目,但是当然可以批量处理。
  • 您可以创建DOSKEY 宏。每次需要使用它们时,您基本上都必须加载它们。因此,您可能希望将它们保存在宏文件中。

标签: batch-file cmd command


【解决方案1】:

根据我的评论,您需要以正确的方式设置变量。

set "say=echo"
set "clear=cls"
set "#screen=@echo off"

然后调用命令,你需要使用变量处理程序,%,但你不能调用#screen,因为它在循环之前还不存在。

for /f "delims=" %%a in (config.ini) do %%a
%clear%
%#screen%
%say% hello
pause

【讨论】:

  • 当我执行文件时,它说“你好”不是内部或外部命令、可运行程序或批处理文件。 -还有什么方法可以不使用“%”?
  • 没有 % 或 ! 就无法设置变量和使用它们当延迟扩展开启时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 2019-03-09
  • 2021-08-02
  • 2020-02-11
相关资源
最近更新 更多