簡體   English   中英

批處理文件-VBScript運行時錯誤:找不到路徑

[英]Batch file - VBScript runtime error: Path not found

我的批處理腳本抱怨它找不到路徑(不確定什么路徑,因為它解釋問題的原因不太准確。我得到的錯誤消息是:

C:/Users/Boss/AppData/Local/Temp/_.vbs(3, 1) Microsoft VBScript runtime error: Path not found

該腳本的整體思想是卸載(不僅是)tomcat放置在指定目錄中,解壓縮並設置它。 現在由於某種原因,UnZip方法可以完美地用於下載和解壓縮Ant,但對於Tomcat則不能。 以下是installAnt和installTomcat方法以及UnZip方法。

:installAnt 
    ::----- ANT Section -----::

    :: Setup Apache Ant if Ant does not exist
    md "%HOMEDRIVE%\Apache\apache-ant-1.9.7\" 2>nul

    :: Set filename variable
    SET "FILENAME=%~dp0\apache-ant-1.9.7-bin.zip"

    :: Download ANT from mirror
    bitsadmin.exe /transfer "Apache Ant Download" http://mirrors.ukfast.co.uk/sites/ftp.apache.org//ant/binaries/apache-ant-1.9.7-bin.zip "%FILENAME%"

    :: Copy Apache Ant to C:\Apache
    xcopy "%~dp0apache-ant-1.9.7-bin.zip"  "%HOMEDRIVE%\Apache\."

    :: Delete zip file from curent directory
    del "%~dp0apache-ant-1.9.7-bin.zip"

    :: Unzip Apache Ant to C:\Apache
    call :UnZipFile "%HOMEDRIVE%\Apache\" "%HOMEDRIVE%\Apache\apache-ant-1.9.7-bin.zip"

    :: Delete zip folder
    del "%HOMEDRIVE%\Apache\apache-ant-1.9.7-bin.zip"

    :: Set ANT_HOME path
    set "ANT_HOME=%HOMEDRIVE%\Apache\apache-ant-1.9.7"
    setx ANT_HOME "%HOMEDRIVE%\Apache\apache-ant-1.9.7" /m

    :: Add ANT to path
    set "path=%PATH%;%ant_home%\bin"
    setx path "%PATH%" /m

    goto checkIvy

:installTomcat
    ::----- Tomcat Section -----::
    echo Installing tomcat
    :: Setup Apache Tomcat if Tomcat does not exist
    md "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56\" 2>nul

    :: Set filename variable
    SET "FILENAME=%~dp0\apache-tomcat-7.0.56.zip"

    :: Download Tomcat from mirror
    bitsadmin.exe /transfer "Apache Tomcat Donwload" http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.zip "%FILENAME%"


    :: Copy Apache Tomcat to C:\Apache
    xcopy "%~dp0apache-tomcat-7.0.56.zip" "%HOMEDRIVE%\Apache\."

    :: Delete zip file from curent direcotry
    del "%~dp0apache-tomcat-7.0.56.zip"

    :: Unzip Apache Tomcat to C:\Apache
    call :UnZipFile "%HOMEDRIVE\Apache\" "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56.zip"

    pause

    rem :: Delete zip folder
    rem del "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56.zip"

    rem :: Set TOMCAT_HOME
    rem set "TOMCAT_HOME=%HOMEDRIVE%\Apache\apache-tomcat-7.0.56"
    rem setx TOMCAT_HOME "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56" /m

    rem :: Add TOMCAT to path
    rem set "path=%PaTH%;%tomcat_home%\bin"
    rem setx path "%PATH%" /m

解壓縮功能:

:: Unzip file
:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs%  echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
goto :eof

不幸的是,我不是批處理文件的專家,並且在弄清楚為什么它適用於Ant但不適用於Tomcat方法時遇到了麻煩。

該批處理文件的第3行:

:: @Author:  Maciej Cygan

鑒於您:

>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If

並且這個證據:

>> p = "N:\ix"
>> If Not goFS.FolderExists(p) Then
>>    goFS.CreateFolder p
>> End If
>>
Error Number:       76
Error Description:  Path not found

我假設您的%1參數包含無法創建的路徑,因為前綴/父路徑無效(此處沒有N:驅動器)。 因此(兩次)檢查%1的內容。

加上第二個想法:

如你所說:

現在由於某種原因,UnZip方法可以完美地用於下載和解壓縮Ant,但對於Tomcat則不能。

並寫道:

call :UnZipFile "%HOMEDRIVE\Apache\" "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56.zip"

我進一步假設,正確引用HOMEDRIVE-如

call :UnZipFile "%HOMEDRIVE%\Apache\" "%HOMEDRIVE%\Apache\apache-tomcat-7.0.56.zip"

(標記額外的%),將解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM