欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

BAT腳本的一些技巧寫法

我以前一直以為bat不能像Linux的shell一樣設(shè)置函數(shù)并且調(diào)用,事實(shí)上我發(fā)現(xiàn)這是可以的。不過由于批處理的特性是一行一行執(zhí)行的,這種label的函數(shù)必須要寫在文本的最后。如果寫在了批處理命令的前面,bat會逐行運(yùn)行里面的命令的。寫在文檔的最后面,并且在“函數(shù)區(qū)域”前跳過這些代碼。

在夾江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,夾江網(wǎng)站建設(shè)費(fèi)用合理。

(順便吐槽一下,這種函數(shù)的寫法和linux的shell很不一樣,shell的function中的命令必須寫在命令的前面,讓shell逐行運(yùn)行一次,才能在后面的命令中被人調(diào)用。)

函數(shù)的寫法:

::在這個(gè)例子中我試圖寫的一個(gè)函數(shù)起名為testfunction,它的操作就是運(yùn)行一個(gè)echo命令。

::使用call命令,并且在后面寫入函數(shù)名,函數(shù)名的前方寫一個(gè):代表這是一個(gè)label。

call :testfunction

::這個(gè)goto命令讓批處理在運(yùn)行的時(shí)候跳過所有函數(shù)的部分。

goto EOF

::從下面一行開始就是函數(shù)的部分,它們應(yīng)該是bat腳本的最后部分,理論上不應(yīng)該在下方再寫任何的命令了。首先如同goto的命令一樣,首先要先寫一個(gè)lable

:testfunction

echo Test function is running.

rem exit /b 會讓程序跳轉(zhuǎn)到調(diào)用函數(shù)的命令處,而不是直接退出程序。

exit /b

:EOF

::以上就是示例腳本的所有內(nèi)容。

當(dāng)然你可以不把函數(shù)內(nèi)容寫在這個(gè)bat中,而是另外寫一個(gè)bat文件,然后call這個(gè)bat的絕對路徑,那也是可以的。為了方便我就暫時(shí)稱呼我運(yùn)行的腳本名字為a.bat,而調(diào)用的腳本為b.bat。

a.bat的內(nèi)容是。

set a=aaa

call b.bat

echo %b%

pause

而b.bat的內(nèi)容是

echo %a%

set b=bbb

在這兩個(gè)腳本中a腳本和b腳本各自定義了一個(gè)變量,而沒有定義另外一個(gè)腳本中定義的變量,但是echo的又互相是對方腳本中定義的變量。如果只有單獨(dú)的腳本,兩個(gè)腳本的echo命令是返回不了任何內(nèi)容的。但是如果你運(yùn)行了a腳本并且調(diào)用了b腳本,可以發(fā)現(xiàn),call調(diào)用的腳本之間的變量是可以互通的。不過腳本之間的goto的label不能互通,即你不能在a腳本中g(shù)oto到b的一個(gè)label中去。

而且不能不寫call命令,如果不寫而是直接寫b腳本的路徑,bat依舊可以運(yùn)行,不過運(yùn)行完b腳本之后,整個(gè)批處理就退出了。例如我們將a腳本中的call b.bat中的call去掉,那么腳本只會打印變量a的值,然后賦值變量b,但是不回會到a腳本再次打印b的值。

通過set /p 命令去獲取另外一個(gè)文本文件里的值

寫法是:

set /p var=<c:\path\to\file.txt

這樣file.txt里的值就到了var這個(gè)變量里去了,不過這個(gè)寫法要求txt只有一行,如果有多行,那么也只會取第一行的內(nèi)容。

那如果想要其他的行,那么這個(gè)就要用到for循環(huán)了。通過for循環(huán)可以讀取文本文件(或一個(gè)命令的結(jié)果)每一行的特性,將一行的內(nèi)容賦值到一個(gè)變量里,不過如果光寫for循環(huán)而不使用計(jì)數(shù)器的話,那么變量的值會被反復(fù)覆蓋,僅保留最后一行的值。

set num=0

for /f "tokens=1" %%i in ('wmic LogicalDisk where "Caption='C:'" get Size ^| find /v /i "size"') do (

set /a num=!num!+1

if !num!==1 (set C_size=%%i)

)

要注意的是計(jì)數(shù)器由于是不停的變化的,因此要用延時(shí)變量,用!包起來而不是%,而for循環(huán)的變量是%%連續(xù)兩個(gè)百分號表示的。如果輸入的命令中有管道命令|,要用轉(zhuǎn)移符^轉(zhuǎn)譯。

for的token參數(shù)可以決定一行根據(jù)指定的分隔符(默認(rèn)是空格)分割成幾段,取第幾段。如果你寫的是表格的話,那就是第幾列,而num計(jì)數(shù)器可以在if里找行。這樣的話這個(gè)循環(huán)就能取出列和行中的指定數(shù)據(jù),賦值到一個(gè)變量里。

在bat中調(diào)用vbs。

當(dāng)然本身的命令是非常簡單的直接call就可以了,call xxx.vbs

不過這里要說的是將bat中的一些變量的值傳遞到vbs中去,

文件里調(diào)用

例如:

在bat中

set a=testmessage

call b.vbs /messageargs:%a%

在vbs中用

set wshnamed=wscript.arguments.named

msgbox wshnamed.item("messageargs")

這樣的寫法來獲取bat變量。

以管理員身份運(yùn)行bat

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

新聞名稱:BAT腳本的一些技巧寫法
路徑分享:http://aaarwkj.com/article44/igsjhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、小程序開發(fā)、做網(wǎng)站、網(wǎng)站制作、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
九九九热视频这里只有精品| 国产欧美日韩午夜激情| 亚洲人午夜射精精品日韩| 亚洲一区二区三区色偷偷| 禁止18岁以下观看的视频| 91亚洲蜜桃内射后入在线观看 | 九九久久精品久久久精品| 国产精品第一区第二区| 一区二区在线视频免费播放 | 久久亚洲中文字幕丝袜长腿| 乱码日本欧美一区二区| 日韩视频 一区 二区| 97乱碰视频在线观看| 亚洲一区麻豆文化传媒| 欧美日韩另类国产综合| 国产精精精精品欧美日韩| 国产精品久久av高潮呻吟| 国产精品美女自拍视频| 国产片精品一区在线观看| 日本午夜诱惑在线观看| 天堂av新版在线观看| 亚洲欧美日韩制服另类| 久久综合给合综合久久| 日本午夜视频在线观看| 久久精品国产一区二区三区不卡| 国产精品久久久久久久久| 国产午夜精品福利爽爽| 尤物视频最新在线观看| 91欧美精品一区二区| 亚洲国产欧美日韩在线一区| 成人激情视频在线观看| 女同伦理视频在线观看| 欧美在线观看香蕉视频| 激情毛片av在线免费看| 亚洲熟女熟妇另类中文| 欧美口爆吞精在线观看| 国产成人精品视频午夜蜜蜂| 午夜香蕉av一区二区三区| 欧美日韩在线一区二区| 青青草原在线视频伊人| 亚洲欧美另类国产一区|