命令提示符:从任何文本文件执行命令(没有".bat"或".cmd"扩展名)

Ale*_*aev 2 windows shell file-extension cmd batch-file

我找不到任何方法,例如,以下内容:

cmd.exe /C "script.txt"

换句话说,如果它包含有效的批处理脚本代码,我需要命令提示符(尝试)执行任何扩展名(不一定.bat.cmd)的文件.我正在寻找类似于Unix shell的行为:

./script.txt

在Unix上,shebang(#!/bin/sh)负责理解该文件实际上是一个脚本,它似乎在Windows .bat.cmd扩展中扮演相同的角色,表示命令提示符的批处理脚本文件.

是否可以避免这种情况并强制命令提示符解释具有任何名称的文件?

注意:请不要回答:

提供您的文件.bat.cmd扩展名.

这不是问题所在.

Aac*_*ini 5

这取决于NON-Batch文件的复杂性.如果NON-Batch文件不使用这些功能:

  • 通过%1%2 ...访问批处理文件参数并执行SHIFT命令.
  • 执行GOTO命令.
  • 执行CALL:NAME命令(内部子程序).
  • 执行SETLOCAL/ENDLOCAL命令.

然后你可以通过这个技巧执行任何文件作为"批处理文件":

cmd < anyFile.ext
Run Code Online (Sandbox Code Playgroud)

这篇文章的进一步细节