Windows .bat / .cmd函数库在自己的文件?
在DOS .bat / .cmd脚本中有
a nice way to build functions.要模块化一些安装脚本,将包含函数库的文件包含到.bat / .cmd脚本中是非常好的.
我试过的是: mainscript.bat call library.bat call:function1 library.bat goto:eof :stopCalipri -- stop alle prozesse die mit calipri zu tun haben :: -- %~1: argument description here SETLOCAL REM.--function body here set LocalVar1=dummy set LocalVar2=dummy echo "Called function successfully :)" (ENDLOCAL & REM -- RETURN VALUES IF "%~1" NEQ "" SET %~1=%LocalVar1% IF "%~2" NEQ "" SET %~2=%LocalVar2% ) GOTO:EOF 当我调用mainscript.bat时,我得到以下输出: 什么意思或多或少:找不到名为function1的跳转点 任何想法,还是这不可能?
这是可能的,有一些不同的方法来做到这一点.
1)将完整的“库”复制并粘贴到每个文件中 2)通过调用包装器包含一个库 call batchLib.bat :length result "abcdef" 并以batchLib.bat开头 call %* exit /b ... :length ... 易于编程,但非常慢,因为每个库调用都加载库批次,并且可能出现的参数问题. 3)“自载”图书馆BatchLibrary or how to include batch files 它每次创建临时批处理文件,结合自己的代码和库代码. 用户脚本示例 @echo off REM 1. Prepare the BatchLibrary for the start command call BatchLib.bat REM 2. Start of the Batchlib,acquisition of the command line parameters,activates the code with the base-library <:%BL.Start% rem Importing more libraries ... call :bl.import "bl_DateTime.bat" call :bl.import "bl_String.bat" rem Use library functions call :bl.String.Length result abcdefghij echo len=%result% 编辑:另一种方式是… 4)宏库 你可以使用批处理宏,很容易包含和使用它们. call MacroLib.bat set myString=abcdef %$strLen% result,myString echo The length of myString is %result% 但是构建宏非常棘手! MacroLibrary.bat set LF=^ ::Above 2 blank lines are required - do not remove set ^"n=^^^%LF%%LF%^%LF%%LF%^^" :::: StrLen pString pResult set $strLen=for /L %%n in (1 1 2) do if %%n==2 (%n% for /F "tokens=1,2 delims=," %%1 in ("!argv!") do (%n% set "str=A!%%~2!"%n% set "len=0"%n% for /l %%A in (12,-1,0) do (%n% set /a "len|=1<<%%A"%n% for %%B in (!len!) do if "!str:~%%B,1!"=="" set /a "len&=~1<<%%A"%n% )%n% for %%v in (!len!) do endlocal^&if "%%~b" neq "" (set "%%~1=%%v") else echo %%v%n% ) %n% ) ELSE setlocal enableDelayedExpansion ^& set argv=, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Exchange Server上升级Windows Server版本
- 安装qt5.9.5 windows环境
- 创建Windows服务以打开程序 – Delphi
- windows-server-2012 – Robocopy – 覆盖所有文件,除非目标
- windows 10 安装和使用中5个常见问题
- Windows开发平台和Linux测试平台之间的最佳接口方式?
- windows-server-2008 – 如何验证是否从WSUS正确配置了Wind
- windows – 如何使用显示信息打开已保存的事件日志文件
- windows-server-2008 – Windows Server 2008 SMTP服务器未
- windows – RC2247:无法打开Rc文件:资源管理器无法加载资
- 适用于Windows Phone 7的Silverlight的PDF查看器
- windows-server-2008 – 在没有guest虚拟机运行时
- Windows上的nohup是什么?
- 如何使用cygwin创建交汇点?
- windows – dokan sshfs有多稳定?
- Windows环境安装与配置RocketMQ
- winapi – 在调用LoadLibrary()时默默捕获Window
- windows10 安装python.msi出现error 2502/2503解
- windows – AutoHotkey将韩文键重新映射到Ctrl
- windows-service – 在LocalService帐户下运行的