2

我已经搜索并找到了几个关于此的示例,但我似乎没有任何工作......我正在编写一个简单的 Windows 批处理脚本来解压缩文件。在我的批处理脚本中,我有一个变量 zipfile,它被动态分配为文件夹和子文件夹中的最新 Zip 文件:

for /f "tokens=*" %%a in ('dir d:\temp\*.zip /s /b /od') do set zipfile=%%a 

为简化起见,考虑值:

set zipfile=d:\temp\mysubfolder\myfile.zip

如何获得完整路径 "d:\temp\mysubfolder\" ?谢谢!

4

2 回答 2

3

简单的:

for /f "tokens=*" %%a in ("%zipfile%") do (set fullpath=%%~dpa)
Echo %fullpath%

完毕!确保%zipfile%没有周围的引号。

莫娜

于 2013-10-24T22:21:44.637 回答
2

请参阅call /?如何在批处理文件中使用标签。它还解释了如何从参数中提取驱动器、路径和文件名。

set zipfile=d:\temp\mysubfolder\myfile.zip
call :SETZIPPATH %zipfile%
goto:eof 

:SETZIPPATH
set zippath=%~dp1

您也可以从 for 循环内部进行调用。

于 2013-10-25T00:22:55.543 回答