我需要调用 zipjs.bat 文件,该文件将路径作为参数。 我通过名为 start.bat 的另一个.bat文件调用.bat文件。 这两个文件在文件系统中不在同一个位置,它们位于不同的文件夹中。
zipjs.bat 位于\batch
, start.bat 位于\odt
作为参数传递给 zipjs.bat 的文件与start.bat位于同一文件夹中。
这种方式(使用-source
的绝对路径)一切正常:
call ..\batch\zipjs.bat unzip -source C:\Users\rmrd001\git\xslt-framework\Product\dita\transformations\paragraphs\odt\source.odt.zip -destination .\MyDir -keep yes -force no
pause
在-source
之上取绝对路径。但是当我用相对的一个改变绝对路径时,像这样:-source .\source.odt.zip
它不起作用。我尝试使用相对于start.bat - .\source.odt.zip
和相对于zipjs.bat - ..\odt\source.odt.zip
的路径而没有成功。
答案 0 :(得分:1)
可能最简单的方法是使用%~dp0
扩展为start.bat
的路径,以Squashman建议的反斜杠结尾。
我建议另外清理目录中的临时文件,因为zipjs.bat上次正在更新的npocmaka上次更新时间为{03}} How to write a batch file that can unzip a file into a new folder with the same name?没有这样做,请参阅{{ 3}}
@echo off
call ..\batch\zipjs.bat unzip -source "%~dp0source.odt.zip" -destination .\MyDir -keep yes -force no
for /F "delims=" %%D in ('dir /AD /B "%TEMP%\*source.odt.zip" 2^>nul') do (
%SystemRoot%\System32\attrib.exe -h "%TEMP%\%%~D"
rd /S /Q "%TEMP%\%%~D" 2>nul
)
pause