主頁 > 知識庫 > 腳本與批處理合二為一

腳本與批處理合二為一

熱門標簽:武漢AI電銷機器人 外呼系統(tǒng)會封嗎 股票配資電銷機器人 實體店地圖標注怎么標 電銷機器人 深圳 南京電銷外呼系統(tǒng)哪家好 在電子版地圖標注要收費嗎 地圖標注如何弄全套標 萬利達綜合醫(yī)院地圖標注點
批處理是我們管理計算機和進行一些日常工作的好幫手,隨著Windows的升級,批處理能做的事情越來越多。但是還是有很多事情我們無法用批處理來完成。好在后來微軟在windows中加入了Windows Script Host,我們現(xiàn)在可以用JScript或VBScript來完成更復雜的工作,配合WMI,可以說是無所不能。WSH腳本用CScript.exe或WScript.exe來執(zhí)行,CScript.exe和WScript.exe有一些參數(shù),設(shè)置不同的參數(shù)對運行的結(jié)果可能會有影響。我就曾發(fā)現(xiàn)有的腳本在使用缺省解釋器 (WScript.exe)和缺省參數(shù)不能得到我想要的結(jié)果。這樣當我寫好一個腳本給別人使用時還得大費口舌解釋該用CScript.exe還是 WScript.exe運行,該配哪些參數(shù)。怎么解決這個問題呢?有一個方法: 另寫一個批處理文件,用適當?shù)姆绞絹磉\行這個腳本。不過這樣我就需要有兩個文件。能不能只用一個文件呢?能!將腳本和批處理融為一體!,不但可以解決上述問題,還可以同時利用批處理和WSH各自的優(yōu)勢。
  思路是把批處理語句放在腳本的注釋里。JScript可以用/* */將一段文字作為注釋,所以我選擇了JScript。但/* */在批處理中是非法字符,怎么才能將其引入而沒有任何不需要的錯誤提示呢?

  我們需要一個批處理和JScript都接受的且沒什么用的語句將/* 引入。JScript中有這樣的語句 @set @varname=value,而批處理中也有: set varname=value, 批處理中可以在語句前面加個@,表示此句不輸出。這就是我們需要的!至于*/很好辦,用 @rem */即可。
  請看下面的代碼(擴展名為bat),很簡單。
復制代碼 代碼如下:

  @set @this_call_started=1 /*
  @echo off
  @rem 允許CMD.EXE擴展功能
  @SETLOCAL ENABLEEXTENSIONS
  @rem 允許CMD.EXE延遲展開環(huán)境變量
  @SETLOCAL ENABLEDELAYEDEXPANSION
  ...
  批處理語句寫在這里
  ...
  @rem "%~dpnx0" 擴展批處理文件自身的文件名為帶完整路徑的文件名
  @rem %* 批處理文件自身的所有參數(shù)
  @rem 重新將本文件作為腳本文件調(diào)用
  @call CScript.EXE "%~dpnx0" //Nologo //e:jscript %*
  ...
  批處理語句寫在這里
  ...
  @goto end_this_call
  @rem */
  //Windows Script Start==================================================
  ...
  腳本語句寫在這里
  ...
  //Windows Script end=====================================================
  /*
  :end_this_call
  ...
  批處理語句寫在這里
  ...
  @set @this_call_started=
  @rem */

標簽:廣東 武威 汕頭 安徽 臺州 濟源 濟寧 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標題《腳本與批處理合二為一》,本文關(guān)鍵詞  腳本,與,批處理,合二為一,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《腳本與批處理合二為一》相關(guān)的同類信息!
  • 本頁收集關(guān)于腳本與批處理合二為一的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章