Выполните следующие два шага, чтобы запустить Javascript в пакетный файл Windows, либо .bat или .cmd.
Первый шаг: добавьте эти строки в начало файла
@set @junk=1 /*
@echo off
cscript //nologo //E:jscript %0 %*
goto :eof
*/
Второй шаг: написать Javascript, чтобы использовать только объекты, которые доступны в Windows Scripting Host, т.е.используйте Wscript.Echo() для вывода вывода на стандартный вывод.
Вот полный пример готов к работе, набрав calen 2011 02
@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(" ------ ")
Просто поместите это в calen.bat или calen.cmd и запустить его на любом достаточно недавно Windows. Не пытайтесь снова бороться с другим свернутым пакетным файлом.
«В Windows только» проблема, когда мы говорим о '.bat' файлах в любом случае? Я не думаю, что кто-то пытается это сделать в DOS. –
@ Joachim указывает, что ограничения ОС никогда не ошибаются IMO - true, '.bat' специфичен для Windows-мира, но shell-скриптов вообще нет. –