遵循教程https://www.gnu.org/software/gawk/manual/gawk.html 我在具有简单awk脚本的Windows上创建了一个cmd文件
cell.setCellValue(getLabel(rsmd.getColumnName(i)));
但是Windows不接受Shebang符号#!并抛出一个错误:
'#!'不被识别为内部或外部命令,可操作 程序或批处理文件。
如何使文件在Windows cmd上可执行?
答案 0 :(得分:2)
“ shebang”(尖锐+爆炸)符号#!
非常具体地是Unix / Linux内核。当您使用exec(2)
系统调用来执行文件时,逻辑将查看文件是否为脚本,如果是,则在其上调用指定的解释器,而不仅仅是期望文件本身是可执行二进制文件。我认为没有任何类似的方法可以在Windows上使用CMD
将带有任意解释器的脚本转换为可直接执行的命令。
您可以做的是选择一个文件后缀(例如.awk
),将该后缀与Explorer中的awk可执行文件相关联,然后使用start
(或双击)运行awk脚本。仅输入裸文件名。
但是您要将awk脚本转换为可以在CMD提示符下运行的命令,最可靠的方法是制作一个手动在文件上运行awk的批处理(.bat
)文件。看起来像这样(假设awk脚本文件与批处理文件位于同一文件夹中):
@echo off
awk -f "%~dp0filename.awk"
这是一个根据您的脚本构建的工作示例:
C:\>echo %PATH%
c:\users\mjreed\bin;C:\windows\system32;C:\windows;...
C:\>type \users\mjreed\bin\hello.bat
@echo off
awk -f "%~dp0hello.awk"
C:\>type \users\mjreed\bin\hello.awk
BEGIN { print "Don't Panic!" }
C:\>hello
Don't Panic!