我的任务是为我的公司编写安装脚本,以便能够在用户计算机上安装打印机驱动程序。
到目前为止我所做的是我已经让脚本接受一个参数(打印机类型兄弟,xerox等等),从那里它将收集驱动程序的相对路径,并运行{{输出所有驱动程序的路径上的命令,之后它将要求用户将正确的驱动程序从网络驱动器复制到用户桌面,然后运行它。
我需要做的是运行部分,我需要将驱动程序复制到桌面并以某种方式获取最后一个目录部分(例如:forfiles
我需要收集最后一部分user\desktop\test.exe
)我怎样才能以功能的方式做到这一点?
基本上我需要将路径拆分为test.exe
并抓住该列表的最后一个条目,这是否可以批量生效?
\
答案 0 :(得分:1)
要获取文件或目录路径的最后一个元素,您可以:
使用for
loop及其~
修饰符:
set "ITEM=user\desktop\test.exe"
for %%I in ("%ITEM%") do set "NAME=%%~nxI"
echo %NAME%
或通过call
command调用子例程,将路径作为参数传递并再次使用~
修饰符:
set "ITEM=user\desktop\test.exe"
call :SUB "%ITEM%"
goto :EOF
:SUB
set "NAME=%~nx1"
goto :EOF
对于这两种变体,~nx
部分从引用中存储的路径的最后一个元素中提取基本名称(n
)和扩展名(x
){{1 }或%%I
)。在命令提示符窗口中键入%1
和for /?
并阅读帮助文本;您将分别找到call /?
变量引用和参数引用的所有可能的~
修饰符。