㈠ 批處理CALL,調用其他批處理子程序的用法
我覺得問題出現在e的身上,如果你有學過C語言的話應該比較好理解。就是C只是在2.cmd這個文件中,作為裡面的一個局部的參數,調用了1.cmd,雖然在1.cmd裡面做了運算,但運算的結果是沒有傳遞出來的。所以e的值還是為0.就好像C要用return 把參數值傳回來那樣,又或者,如果e是一個全局變數的話,或許還行。不過在DOS裡面我不知道有沒有全局變數這個概念。所以,你要實現這種值傳遞的話,恐怕,用批處理不是什麼好的選擇。如果你只是想學習一下call的調用的話,基本上你已經會了
後來想想,或許能用批處理中的errorlevel作為返回值。於是把你的批處理修改了一下,代碼如下:
一、1.cmd
@echo off
set /a t=%1+1
set errorlevel=%t%
GOTO :EOF
二、2.cmd
@ECHO OFF
set /a e=0
call 1.cmd 22
set e=%errorlevel%
echo %e%
pause>nul
這樣就實現了值傳遞了,如有需要,我們可以探討一下,我的QQ:243488442
㈡ 批處理call的使用:語句
你代碼沒加入中斷或退出,所以會繼續往下執行到 1:的位置,所以會多輸出一個1,然後通過goto :eof退出了腳本(此時因為非call調用,goto :eof將退出腳本)
修改方法:
在 call 3: 下面加上 pause 或exit 即可
㈢ 批處理call命令
用start。先cd Data,再start cmd /c b.bat,也可以直接用絕對路徑,比如在cd之前先保存%1%或者用push命令。call只能調用腳本內部的代碼(我不知道能不能調用外部的)。
㈣ DOS批處理里調用CALL命令的先後問題
呵呵……好說好說……
把所有的call去掉即可順序執行,即執行1後,等1退出後再執行2……
㈤ 求助批處理call語句解釋
call一般用於2鍾用途
1. 跳轉標簽
例:call:標簽1
執行到這一種語句,程序腳本會自動匹配到指定的標簽:標簽1
在從標簽那一行繼續往下執行(程序由上往下執行)
例:
@echooff
call:text1
echo123
pause
:text1
echo234
pause
例如這一段代碼,程序最終會顯示字元串234,字元串123則不會顯示出來
因為上一句使用了call語句,用於跳轉至指定的標簽
2. 傳遞參數
例A:call:text1123
例B:calla.bat123
這2個語句都會傳遞一個參數,參數是用變數形式傳遞,%1-%9,默認是9個參數
在使用參數的時候,根據程序需要,都會有一個返回值參數
這個返回值參數,一般用於比較特殊的程序思路,關於返回值的用法,一句二局說不明白
這里我指跟你說一下一般的傳遞參數的使用
例A
@echooff
call:函數A123
echo%Num%
pause
:函數A
setNum=123
set/aNum+=%1
exit/b
這一段代碼,函數A,您可以當做一個函數模塊,功能用於計算
如果是一些大型的腳本,方便長期維護,這樣的寫法是非常好的
call 函數A 標簽 傳遞一個數值123
那麼函數A就會吧這個數值用於計算,最後返回回去,得兒最終顯示結果
那麼例B,其實跟例A用法其實一樣,但是裡面存在了一個返回值的特性
如果您想了解返回值,多研究exit的語句,純手打!希望對您有幫助!
㈥ 求批處理中Call詳細用法並有例子加以說明,謝謝
從批處理程序調用另一個批處理程序。
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批處理程序所需的命令行信息。
如果命令擴展名被啟用,CALL 會如下改變:
CALL 命令現在將卷標當作 CALL 的目標接受。語法是:
CALL:label arguments
一個新的批文件上下文由指定的參數所創建,控制在卷標被指定
後傳遞到語句。您必須通過達到批腳本文件末兩次來 "exit" 兩次。
第一次讀到文件末時,控制會回到 CALL 語句的緊後面。第二次
會退出批腳本。鍵入 GOTO /?,參看 GOTO : EOF 擴展名的描述,
此描述允許您從一個批腳本返回。
另外,批腳本文本參數參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)
批參數(%n)的替代已被增強。您可以使用以下語法:
%~1 - 刪除引號("),擴充 %1
%~f1 - 將 %1 擴充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴充到一個驅動器號
%~p1 - 僅將 %1 擴充到一個路徑
%~n1 - 僅將 %1 擴充到一個文件名
%~x1 - 僅將 %1 擴充到一個文件擴展名
%~s1 - 擴充的路徑指含有短名
%~a1 - 將 %1 擴充到文件屬性
%~t1 - 將 %1 擴充到文件的日期/時間
%~z1 - 將 %1 擴充到文件的大小
%~$PATH : 1 - 查找列在 PATH 環境變數的目錄,並將 %1
擴充到找到的第一個完全合格的名稱。如果環境
變數名未被定義,或者沒有找到文件,此組合鍵會
擴充到空字元串
可以組合修定符來取得多重結果:
%~dp1 - 只將 %1 擴展到驅動器號和路徑
%~nx1 - 只將 %1 擴展到文件名和擴展名
%~dp$PATH:1 - 在列在 PATH 環境變數中的目錄里查找 %1,
並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*
使用
來自:cmd ——> call /? > xxx.txt
回答者: bmgeng - 三級 2009-5-16 10:57
檢舉 Call語句調用另一個(子)程序,並等待其執行後返回正確或錯誤結果.
返回的位置是Call語句的末尾.
Start語句調用另一個(子)程序,但是不需返回.
請比較:
call attrib -h -r c:\auto.bat
start attrib -h -r c:\auto.bat
或:
call attrib -h -r c:\autoexec.bat
start attrib -h -r c:\autoexec.bat
回答者: carlkang - 二級 2009-5-19 18:09
檢舉 call主要用來執行子程序或另一個bat文件
call format就相當於format
㈦ 請詳細講解下批處理文件echo、@、call、pause、rem 命令的具體用法以及含義
1、
顯示信息,或將命令回顯打開或關上。
ECHO [ON | OFF]
ECHO [message]
要顯示當前回顯設置,鍵入不帶參數的 ECHO。
從批處理程序調用另一個批處理程序。
2、
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批處理程序所需的命令行信息。
如果命令擴展名被啟用,CALL 會如下改變:
CALL 命令現在將卷標當作 CALL 的目標接受。語法是:
CALL:label arguments
一個新的批文件上下文由指定的參數所創建,控制在卷標被指定
後傳遞到語句。您必須通過達到批腳本文件末兩次來 "exit" 兩次。
第一次讀到文件末時,控制會回到 CALL 語句的緊後面。第二次
會退出批腳本。鍵入 GOTO /?,參看 GOTO : EOF 擴展名的描述,
此描述允許您從一個批腳本返回。
另外,批腳本文本參數參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)
批參數(%n)的替代已被增強。您可以使用以下語法:
%~1 - 刪除引號("),擴充 %1
%~f1 - 將 %1 擴充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴充到一個驅動器號
%~p1 - 僅將 %1 擴充到一個路徑
%~n1 - 僅將 %1 擴充到一個文件名
%~x1 - 僅將 %1 擴充到一個文件擴展名
%~s1 - 擴充的路徑指含有短名
%~a1 - 將 %1 擴充到文件屬性
%~t1 - 將 %1 擴充到文件的日期/時間
%~z1 - 將 %1 擴充到文件的大小
%~$PATH : 1 - 查找列在 PATH 環境變數的目錄,並將 %1
擴充到找到的第一個完全合格的名稱。如果環境
變數名未被定義,或者沒有找到文件,此組合鍵會
擴充到空字元串
可以組合修定符來取得多重結果:
%~dp1 - 只將 %1 擴展到驅動器號和路徑
%~nx1 - 只將 %1 擴展到文件名和擴展名
%~dp$PATH:1 - 在列在 PATH 環境變數中的目錄里查找 %1,
並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*
使用
3、
暫停批處理程序,並顯示以下消息:
請按任意鍵繼續. . . 在批處理文件或 CONFIG.SYS 里加上註解或說明。
4、
REM [comment]
㈧ 批處理Call命令能給我舉例說明嗎
樓主沒有把代碼復制全啊
首先要開啟變數延
解釋問題
call :assoc %%i tpc %%j 用標簽運行 賦值 %1 %2 %3 在這個標簽 %1是 %%i %2 是 tcp %3是 %%j
運行 :assoc 得到返回值再顯示
其他例句
@echooff
for/f"delims=0"%%iin('help')docall:s%%i
pause
:s
echo所有幫助
echo%1
㈨ 批處理(bat)請教,call命令用法
上一級目錄不必用call命令,cd..就改變當前目錄到上一級了cd..\..就上兩級了
pushd ..\..
echo %cd%
popd
如果是引用需要, 直接用 ..\..\代路徑就行了這稱為相對路徑
㈩ 如何在.bat 中call sh 腳本
java執行jar包中的class命令為:java-classpathxxx.jarpackage.MyTools注意:該MyTools中必須包含main函數.例子:1.業務代碼MyTools類含有main函數,包路徑為com.my.test,它引用了oracle的驅動classes12.jar最終打包成Tools.jar2.新建start.bat文件,內容如下(注意要引入classes12.jar,以分號間隔)java-classpathTools.jar;classes12.jarcom.my.test.MyToolspause同樣,sh腳本:要進行dos2unix#!/bin/shcmddir="`dirname$0`"