回答
1.bat
call 2.bat /c goto :this
call 2.bat /c call :that
。
2.bat
if "%1"=="/c" shift & shift & %2 %3
goto :eof
:this
echo This!
goto :eof
:that
echo That!
goto :eof
編輯:我原來的職位是最接近糾正。但我已經糾正了我的錯誤(或多個)。
我雙移,將%1和%2移除到左邊,從而將任何其他變量傳遞給%1和%2位置。然後我執行%2和%3,因爲直到該行完成執行/解釋爲止,轉換的效果纔會生效。
只需擁有父/母批處理文件並將參數傳遞給子批處理文件即可。
mom.bat
@ECHO OFF
ECHO Here we go
CALL child.bat 3
PAUSE
child.bat
@ECHO OFF
IF "%1"=="1" Goto 1
IF "%1"=="2" Goto 2
IF "%1"=="3" Goto 3
EXIT
:1
ECHO 1!
PAUSE
EXIT
:2
ECHO 2!
PAUSE
EXIT
:3
ECHO 3!
PAUSE
EXIT
這個例子應該呼應3!作爲母親批處理文件傳遞參數孩子批處理文件。
+1,你爲什麼要檢查'%1'?只是跳到它也應該工作 – jeb
@jeb - 我想這取決於你如何命名Goto參數,如果你可以修改子批處理文件或不是,但好點。 – LittleBobbyTables
我不能縫以獲得任何工作的權利。是呼叫功能的理想原因,我試圖讓媽媽蝙蝠用%0調用自己,並在新窗口中打開goto函數。這樣我可以保持不同的功能打開,並繼續在原來的導航 –
是的,但它是一個黑客。
通常情況下,您可以通過調用的批處理文件獲得一些幫助。
main.bat
call second.bat :theFunction
* second.bat
goto %1
...
:theFunction
的hack使用一個功能的bug,你只需要在同一個標籤作爲second.bat。 如果你開始second.bat沒有call
main.bat
call :theFunction
echo back in main
exit /b
:theFunction
second.bat
echo back in the func in main, this line will never reached
exit /b This line will also never reached
當second.bat回報,它將在main.bat的call
後返回的行它只
在批處理文件,你在呼喚把這個頂部
if not %1=="" goto :%1
在您使用的稱呼它爲批處理文件把
call b.bat labelname
這顯然是有限的取決於你正在嘗試做的,但基本的功能性作品。
- 1. 與WinRar的批量命令
- 2. 與goto命令不起作用的windows批處理文件
- 3. Linux Bash goto命令?
- 4. Linux批處理命令獲取從特定字符串開始的用戶
- 5. Neo4j,與Cypher命令的批量加載
- 6. 批量「SET」命令
- 7. 批處理命令忽略dir命令後的特定文件?
- 8. 批次開始堅持特定的變量
- 9. 批與IF ELSE和GOTO
- 10. goto命令不起作用
- 11. Visual Basic「msgbox」和GoTo命令
- 12. 檢測特定的短語開始識別命令
- 13. 批處理命令,特定執行順序和多個命令
- 14. Windows批處理文件「開始」命令未打開完整URL
- 15. Windows批處理文件 - GOTO命令被忽略
- 16. 批量輸入COLOR命令
- 17. 批量拷貝Xcopy命令
- 18. 在批處理文件中使用「IF」或「GOTO」打開特定的RDP連接
- 19. 批量覆蓋goto的腳本參數
- 20. 特定命令
- 21. 批處理腳本中的「開始」命令
- 22. 批處理文件「開始」的命令和參數
- 23. 批次 - 開始的命令cmd窗口,但會在後臺
- 24. goto和jump命令的替代方法
- 25. Xcode4中的* goto line *命令在哪裏?
- 26. 雙GOTO命令 - 基於DOS的時鐘
- 27. 命令行批量重命名
- 28. PowerShell命令批量重命名文件
- 29. 備用命令開始
- 30. VIM「!」和Windows開始命令
爲什麼你換兩次沒有任何影響? – jeb
@jeb - 哎呀,我的錯。一定比我想象的更累。 –
不錯的主意,但它又不起作用:-)由於換檔對同一行中的'%1%2'沒有影響 – jeb