首先给出大体思路,我实现一个bat有两种方式,第一种就是先把一些变量的设置放在prepare.bat中, 然后再另一个批处理文件1902.bat中调用prepare.bat; 第二种方法是直接把所有变量放在1902.bat中实现,我想问下这两种方式有什么区别, 理论来讲没有区别的,可为什么第一种方法和第二种方法的最后结果会不一样? 且第一种方法失败, 难道说在调用prepare.bat中变量发生了变化? 希望能有人帮忙解答!
这个是prepare.bat的内容:- @echo off
- echo.
- echo ************************************************************
- echo choose the right path
- echo ************************************************************
- echo.
- set path=\\172.25.140.232\mytest
复制代码 下面是第一种方法1902.bat的内容:- @echo off
- call prepare.bat
- rmdir %systemdrive%\905 /S /Q
- \\sources\deployment\installer\win\LzmaSDK\7z.exe x -o%systemdrive%\905 %path%\Main\tool.exe
- echo.
- echo **************************************************************
- echo delete a section of this file, doesn't matter what you delete just delete something
- echo **************************************************************
- echo.
- notepad %systemdrive%\905\tool.7z
- echo.
- echo **************************************************************
- echo.
- echo * Check Test Verify *
- echo.
- echo **************************************************************
- echo 1.Verify that setup fails
- echo 2.The message reads: 'Failed to extract installer package"
- echo 3.The More Information link goes to:
- echo http://resources/help.aspx?errorID=1513
- echo (you do not need to validate the text on this page)
- echo ************************************************************
- echo.
- echo.
- echo ************************************************************
- c:\905\install.exe
- echo ************************************************************
- echo.
- pause
复制代码 下面是第二种方法的1902.bat内容:- @echo off
- set path=\\172.25.140.232\mytest
- rmdir %systemdrive%\905 /S /Q
- \\sources\deployment\installer\win\LzmaSDK\7z.exe x -o%systemdrive%\905 %path%\Main\tool.exe
- echo.
- echo **************************************************************
- echo delete a section of this file, doesn't matter what you delete just delete something
- echo **************************************************************
- echo.
- notepad %systemdrive%\905\tool.7z
- echo.
- echo **************************************************************
- echo.
- echo * Check Test Verify *
- echo.
- echo **************************************************************
- echo 1.Verify that setup fails
- echo 2.The message reads: 'Failed to extract installer package"
- echo 3.The More Information link goes to:
- echo http://resources/help.aspx?errorID=1513
- echo (you do not need to validate the text on this page)
- echo ************************************************************
- echo.
- echo.
- echo ************************************************************
- c:\905\install.exe
- echo ************************************************************
- echo.
- pause
复制代码 做个解释- \\sources\deployment\installer\win\LzmaSDK\7z.exe x -o%systemdrive%\905 %slbranch%\Main\tool.exe
复制代码 是指把tool.exe解压到本地c:\905\下面.
最后结果: 第一种方法,安装得不到错误连接http://resources/help.aspx?errorID=1513 而是得到了http://resources/help.aspx?errorID=2, 第二种方法(即直接在1902.bat中设置变量%path%) 可以得到预期结果.
我想是不是因为在调用prepare.bat中变量%path%发生了变化? 希望能有强人帮忙解答! |