1. 程式人生 > >[原創] 指令碼與批處理合二為一-----(1)JaveScript篇

[原創] 指令碼與批處理合二為一-----(1)JaveScript篇

    批處理是我們管理計算機和進行一些日常工作的好幫手,隨著Windows的升級,批處理能做的事情越來越多。但是還是有很多事情我們無法用批處理來完成。好在後來微軟在windows中加入了Windows Script Host,我們現在可以用JScriptVBScript來完成更復雜的工作,配合WMI,可以說是無所不能。WSH指令碼用CScript.exeWScript.exe來執行,CScript.exe和WScript.exe有一些引數,設定不同的引數對執行的結果可能會有影響。我就曾發現有的指令碼在使用預設直譯器(WScript.exe)和預設引數不能得到我想要的結果。這樣當我寫好一個指令碼給別人使用時還得大費口舌解釋該用CScript.exe還是WScript.exe執行,該配哪些引數。怎麼解決這個問題呢?有一個方法: 另寫一個批處理檔案,用適當的方式來執行這個指令碼。不過這樣我就需要有兩個檔案。能不能只用一個檔案呢?能!將指令碼和批處理融為一體

!,不但可以解決上述問題,還可以同時利用批處理和WSH各自的優勢。
    思路是把批處理語句放在指令碼的註釋裡。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延遲展開環境變數
   @SETLOCAL ENABLEDELAYEDEXPANSION

   ...
   批處理語句寫在這裡      
   ...

   @rem "%~dpnx0"  擴充套件批處理檔案自身的檔名為帶完整路徑的檔名
   @rem %*         批處理檔案自身的所有引數
   @rem 重新將本檔案作為指令碼檔案呼叫
   @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
*/

相關推薦

[原創] 指令碼處理合二為一-----(1)JaveScript

    批處理是我們管理計算機和進行一些日常工作的好幫手,隨著Windows的升級,批處理能做的事情越來越多。但是還是有很多事情我們無法用批處理來完成。好在後來微軟在windows中加入了Windows Script Host,我們現在可以用JScript或VBScript來

原創】使用處理指令碼自動生成並上傳NuGet包

  Hello 大家好,我是TANZAME,我們又見面了。   NuGet 是什麼這裡就不再重複囉嗦,園子裡一搜一大把。今天要跟大家分享的是,在日常開發過程中如何統一管理我們的包,如何通過批處理指令碼生成包並自動上傳到 NuGet。在實際專案開發過程中我們要上傳自己的包,一般的步驟都是:nuget

MapReduce處理------《Designing Data-Intensive Applications》讀書筆記14

利用 目的 專業 構建 創建 實現邏輯 內容 sign 傳統 之前的文章大量的內容在和大家探討分布式存儲,接下來的章節進入了分布式計算領域。坦白說,個人之前專業的重心側重於存儲,對許多計算的內容理解可能不是和確切,如果文章中的理解有所不妥,願虛心賜教。本篇將和大家聊一聊分

處理符號1

一、 @ 這個字元在批處理中的意思是關閉當前行的回顯。我們從前幾課知道ECHO OFF可以關閉掉整個批處理命令的回顯,但不能關掉ECHO OFF這個命令,現在我們在ECHO OFF這個命令前加個@,就可以達到所有命令均不回顯的要求 1.bat echo off dir d:\ 2.bat @ech

撩課-JavaWeb之事務處理

事務 事務問題 建立一張個人賬戶表 zs與ls進行轉賬 1.檢查zs賬戶餘額 2.減少zs賬戶1000 3.增加ls賬戶1000 示例如下: 出現異常情況 在第2步和第3步之間弄一個異常 int a = 1 / 0;

c++修改檔名字尾 檔案路徑分解處理檔案遍歷

 #include <cstdlib> #include <iostream> #include <dirent.h> #include <fcntl.h> using namespace std; int main(int argc, char *arg

JAVA學習筆記(五十四)- 事務Transaction處理

/* * 批處理 */ public class Test02 { Connection conn = null; Statement stmt = null; PreparedStatement pstmt=null; ResultSet rs = null;

Python影象處理1):繪製圖像,點和線,影象輪廓,直方圖

說明:此實驗主要是在Python中實現:繪製圖像,點和線,影象輪廓,直方圖 import tkFileDialog from PIL import Image from pylab import * #開啟一個對話方塊用來選擇一個檔案 filename = t

【沫沫金原創】Bat處理完成Oracle數據庫7天備份自動刪除

存儲 images 問題 兩個 vpd 批處理 windows oss 使用 導讀 數據庫的備份是古老而不可忽視的話題,完成備份,隨著時間的推移,將會占用大量的空間,這是個問題?解決有兩個選項,1、增加存儲空間 2、保留最近備份。本篇重點介紹方案2 方案2 編寫bat腳本,

windows處理指令碼bat命令解析【11】rddel命令以及引數

命令:RD,刪除目錄  增加引數:/S  引數說明:使用此引數即“RD/S”用於刪除目錄樹,即刪除目錄及目錄下的所有子目錄和檔案,相當於以前版本中的DELTREE命令。  增加引數:/Q XP中的增強DOS命令  引數說明:使用上面的/S引數刪除目錄樹時,系統

【讀書1】【2017】MATLAB深度學習——處理方法的實現(2)

這表明,批處理方法需要更多的時間來訓練神經網路,以產生與SGD方法類似的精度水平。 This indicates that the batch methodrequires more time to train the neural network to yie

【FFMpeg視訊開發應用基礎】一、使用FFmpeg命令列工具和處理指令碼進行簡單的音視訊檔案編輯

《FFMpeg視訊開發與應用基礎——使用FFMpeg工具與SDK》視訊教程已經在“CSDN學院”上線,視訊中包含了從0開始逐行程式碼實現FFMpeg視訊開發的過程,歡迎觀看!連結地址:FFMpeg視訊開發與應用基礎——使用FFMpeg工具與SDK

bat處理(二):%0 %1——給處理指令碼傳遞引數

初次接觸批處理指令碼覺得有點意思,所以決定寫一個小功能試驗一下,誰知剛一開始就發現遇到了麻煩,本想著使用引數來控制程式的執行結果,可是引數怎麼傳進去呢,於是研究了一番,最終發現這個引數的傳遞與main函式居然非常相似,我們一起來寫個小例子試驗一下。 內容 批處理檔案中可引用的引數為%0~%9,%0是指批處理

.bat處理(二):%0 %1——給處理指令碼傳遞引數

前言 初次接觸批處理指令碼覺得有點意思,所以決定寫一個小功能試驗一下,誰知剛一開始就發現遇到了麻煩,本想著使用引數來控制程式的執行結果,可是引數怎麼傳進去呢,於是研究了一番,最終發現這個引數的傳遞與m

1.1命令格式目錄處理命令ls

nbsp etc 等於 所有 信息 大小 其他 需要 文件大小 一,命令格式 命令格式:命令 【-選項】【參數】   例如:ls -l /etc, ls -al /etc 說明:1,個別命令使用不必遵循該格式    2,當有多個選項時,可以寫在一起,如:ls -al ,l

處理腳本下文件文件夾的操作

顯示 got bash 重命名 目錄樹 dir 文件名 class 一個 一、文件夾操作 dir // 顯示當前目錄中的文件和子目錄 mkdir/md 目錄名 // 創建一個空目錄 rmdir/rd 目錄名

處理BAT替換截取字符串的用法t1=%a:~3%是什麽意思

emp 光標 意思 一個 class abs echo 需要 代碼 在bat編寫中,我們經常越到t1=%a:~3%之類的代碼,這裏簡單介紹下用法,需要的朋友可以參考下: 一、替換用法 例 @echo off set a=belcome to CMD bor

通過處理文件使用7zip執行備份,將1日和15日的備份再另外備份,定時清理過期備份

命令行備份 命令行清理 Batch File 批處理文件 批處理備份 7z.exe是個好東東,N多年前,當時試用了各種命令行壓縮軟件,效果都不怎麽樣,那時7zip出來不久,發現它也有命令行模式,然後試用一下,發現可用性很好,壓縮率、效率也很不錯。當時試用過winrar和rar,效果都不太好

2.1.1基礎之處理命令xcopy move del md

ref set 子目錄 對比 .html win 裏的 創建文件夾 htm Windows命令行batcmd腳本的應用之自動備份 異地備份 遊旗丶引莫(孫忠)2.1.1基礎之批處理命令xcopy move del md Windows命令行batcmd腳本的應用之自動備份

大數據爭論:處理處理的C位之戰

數據管理 sha 區別 mark spark 連續 錘子 常用 兩種 數據無疑是當今數字經濟中的新貨幣,但要跟上企業數據變化和遞增的業務信息需求,仍然是非常艱難。這也就解釋了公司將數據從傳統基礎構架中遷移至雲中,以衡量數據驅動決策的原因。這可確保公司寶貴資源——數據——受到