佳木斯湛栽影视文化发展公司

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

腳本與批處理合二為一

熱門標(biāo)簽:百度競(jìng)價(jià)排名 呼叫中心市場(chǎng)需求 Linux服務(wù)器 服務(wù)外包 網(wǎng)站排名優(yōu)化 AI電銷 鐵路電話系統(tǒng) 地方門戶網(wǎng)站
批處理是我們管理計(jì)算機(jī)和進(jìn)行一些日常工作的好幫手,隨著Windows的升級(jí),批處理能做的事情越來越多。但是還是有很多事情我們無法用批處理來完成。好在后來微軟在windows中加入了Windows Script Host,我們現(xiàn)在可以用JScript或VBScript來完成更復(fù)雜的工作,配合WMI,可以說是無所不能。WSH腳本用CScript.exe或WScript.exe來執(zhí)行,CScript.exe和WScript.exe有一些參數(shù),設(shè)置不同的參數(shù)對(duì)運(yùn)行的結(jié)果可能會(huì)有影響。我就曾發(fā)現(xiàn)有的腳本在使用缺省解釋器 (WScript.exe)和缺省參數(shù)不能得到我想要的結(jié)果。這樣當(dāng)我寫好一個(gè)腳本給別人使用時(shí)還得大費(fèi)口舌解釋該用CScript.exe還是 WScript.exe運(yùn)行,該配哪些參數(shù)。怎么解決這個(gè)問題呢?有一個(gè)方法: 另寫一個(gè)批處理文件,用適當(dāng)?shù)姆绞絹磉\(yùn)行這個(gè)腳本。不過這樣我就需要有兩個(gè)文件。能不能只用一個(gè)文件呢?能!將腳本和批處理融為一體!,不但可以解決上述問題,還可以同時(shí)利用批處理和WSH各自的優(yōu)勢(shì)。
  思路是把批處理語句放在腳本的注釋里。JScript可以用/* */將一段文字作為注釋,所以我選擇了JScript。但/* */在批處理中是非法字符,怎么才能將其引入而沒有任何不需要的錯(cuò)誤提示呢?

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

  @set @this_call_started=1 /*
  @echo off
  @rem 允許CMD.EXE擴(kuò)展功能
  @SETLOCAL ENABLEEXTENSIONS
  @rem 允許CMD.EXE延遲展開環(huán)境變量
  @SETLOCAL ENABLEDELAYEDEXPANSION
  ...
  批處理語句寫在這里
  ...
  @rem "%~dpnx0" 擴(kuò)展批處理文件自身的文件名為帶完整路徑的文件名
  @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 */

標(biāo)簽:仙桃 銅川 湖南 蘭州 衡水 崇左 黃山 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《腳本與批處理合二為一》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    江口县| 桐庐县| 满城县| 施甸县| 黄陵县| 文成县| 康保县| 清苑县| 甘泉县| 西充县| 临颍县| 沾化县| 彭泽县| 武冈市| 清新县| 呼图壁县| 镇平县| 板桥市| 荆州市| 昭苏县| 恩施市| 滦平县| 鄂尔多斯市| 泗洪县| 洞头县| 九寨沟县| 贵南县| 长宁县| 濮阳市| 浮梁县| 峡江县| 六安市| 肥东县| 涿州市| 城固县| 孝感市| 同仁县| 元氏县| 乐陵市| 宁强县| 喀喇沁旗|