2010-02-24 106 views
3

是否有任何方式從.bat文件執行javascript或將JavaScript嵌入到.bat文件中。將Javascript嵌入到.bat文件中

我需要一個JavaScript代碼來寫/讀本地文件夾中的文件。這個JavaScript我應該能夠使用.bat來執行它。

是否有可能?

感謝

SNA

回答

1

在Windows上,在一個批處理文件,嘗試

CSCRIPT jsfile.js

-1

是,sort of。當然,只在Windows上。

也就是說,可能有更好的方法來做到這一點。你需要JavaScript來做什麼?爲什麼它必須是JavaScript?

+1

當我們談論'.bat'文件時,「僅在Windows上」是一個問題嗎?我不認爲有人在DOS上試圖做到這一點。 – 2010-02-24 11:10:27

+0

@Joachim指出操作系統的限制永遠不會出錯IMO - true,'.bat'特定於Windows世界,但shell腳本通常不是。 – 2010-02-24 16:11:10

-1

簡答:沒有。

Javascript(從瀏覽器運行時)無法訪問客戶端資源(這是爲了避免安全風險而設計的)。

您可以使用瀏覽器外部的的Javascript 來創建腳本,但是您應該提供關於您正在嘗試執行的操作(以及您希望運行的操作系統)的更多詳細信息。

此外,請檢查this page瞭解更多詳情。

0

您可以使用基於命令行的腳本主機CScript.exe從批處理文件運行JScr​​ipt腳本。

您需要將腳本放在單獨的文件中,儘管您將該腳本作爲參數傳遞給CScript.exe。如果您希望將所有內容都保存在單獨的文件中,則可以將JScript代碼嵌入到批處理文件中,將其轉儲到臨時文件,然後將其傳遞給CScript.exe,然後刪除臨時腳本文件。

可能有更優雅的解決方案(希望)

-2

您可以從一個批處理文件與基於命令行的腳本宿主CScript.exe運行的JScript腳本。

您需要將腳本放在單獨的文件中,儘管您將該腳本作爲參數傳遞給CScript.exe。如果要將所有內容保存在單個文件中,可以將JScript代碼嵌入到批處理文件中,將其轉儲到臨時文件,然後將其傳遞給CScript.exe,然後刪除臨時腳本文件。

可能有更優雅的解決方案(希望)

11

按照這兩個步驟在Windows批處理文件運行JavaScript,或者.bat或.cmd。

第一步:這些行添加到您的文件的開頭

@set @junk=1 /* 
@echo off 
cscript //nologo //E:jscript %0 %* 
goto :eof 
*/ 

第二步:寫你的Javascript只使用在Windows腳本宿主提供的對象,即使用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上運行它來運行一個完整的例子。 不要再次與另一個複雜的批處理文件鬥爭。

1

我知道我有點晚了,但如果你的系統上安裝了node.js,你可以使用bat文件來調用節點函數並執行你的javascript代碼。

https://nodejs.org/en/

的Node.js(使用模塊時)讓你做了不少事情BAT文件可以做到。使用只有JavaScript可以編輯/詞組本地文件,運行exe文件等...等..

一步一步的指導,這一設置是: 1)下載並安裝的node.js https://nodejs.org/en/download/ 2)用你想運行的js代碼在你的電腦上創建一個javascript文件。 在此文件中,您將添加代碼以允許node.js訪問您計算機上的本地文件。把下面的代碼在你的JavaScript文件的頂部:

//Load required modules 
fs = require('fs') 

//Function to read local files 
fs.readFile('path-to-file/this-is-my-file.txt', 'utf8', function (err,data) { 
    if (err) { 

    return console.log(err); 
    } 
    //data is the text file 
} 

3)創建一個批處理文件是這樣的:

echo off 

node "path-to-javascript\index.js" 

而你所有的設置!