Windows如何知道这是JSCRIPT?
@set @junk=1 /* @echo off cscript //nologo //E:jscript %0 %* goto :eof */ x = WScript.Arguments Yr = x(0) ; Mo = x(1) YS = "JanFebMarAprMayJunJulAugSepOctNovDec" MN = Mo<1 || Mo>12 ? Mo : YS.substr(3*Mo-3,3) // Month Name WScript.echo(" ",Yr," ",MN) WScript.echo(" Mo Tu We Th Fr Sa Su") WD = new Date(Yr,Mo-1,1).getDay() ; if (WD==0) WD = 7 // Week Day Number of 1st LD = new Date(Yr,Mo,0).getDate() // Last Day of month Wk = "" ; for (D=1 ; D < WD ; D++) Wk += " " for (D=1 ; D<=LD ; D++) { Wk = Wk + " " + (D<10 ? "0"+D : D) ; WD++ if ((WD==8) || (D==LD)) { WScript.echo(Wk) ; WD = WD-7 ; Wk = "" } } WScript.echo(" ------ ")
样品用法:
C:\batch>calendar.cmd 2014 7 2014 Jul Mo Tu We Th Fr Sa Su 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ------
真的很简单.第一行是有效的批处理文件语言,用于设置shell变量以及忽略最后一个空格后的所有内容.它也是用于设置编译时变量的有效JSCRIPT,最后两个字符开始一个Javascript注释,导致其余的批处理文件语言行被忽略.
cscript行导致JSCRIPT使用相同的参数%*执行相同的文件%0.然后批处理goto语句使用:eof,它是表示文件结尾的内置标签.
如果您是初学者,并且花时间学习如何将JSCRIPT应用于Windows shell脚本的问题,您可以使用Web应用程序,Windows HTML应用程序(.HTA)在浏览器中重新应用您的Javascript知识,甚至在shell中在安装了Rhino或node.js的Unix平台上编写脚本.