因此,我制作了一个批处理脚本,它可以执行多个可移植程序(例如 prog1.exe、prog2.exe 等)。问题是每当我将 USB 驱动器连接到另一台计算机时,驱动器号都会更改,从而在运行 .bat 文件时出现错误。请帮我找到解决方案。谢谢你。
问问题
38704 次
3 回答
20
%~d0
给你当前的驱动器号(包括冒号)。如果批处理文件包含在 USB 驱动器上,您可以使用它。
因此,例如,而不是
E:\PortablePrograms\ProgramName.exe
你会写
%~d0\PortablePrograms\ProgramName.exe
...或者你可以做这样的事情
::change directory to the script's directory's drive
pushd %~d0
::navigate from the drive to the relevant path(s)
cd PortablePrograms
::execute any programs
ProgramName.exe
SecondProgramName.exe
::just because I like to pair my pushes with pops; not required
popd
于 2013-09-30T21:19:38.243 回答
2
这就是我获得列表中最后一个可移动驱动器的方式。
@echo off
:: Drivetypes
:: 0=Unknown
:: 1=No Root Directory
:: 2=Removable(USB,Firewire)
:: 3=Local Disk (Internal Hard Drive)
:: 4=Network Drive(\\Server\share\)
:: 5=Compact Disk (CD DVD)
:: 6=Ram Disk
for /f "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=2"
get name /format:value') do set driveletter= %%d
echo %driveletter%
pause
于 2017-12-07T19:36:26.070 回答
0
您可以使用命令行参数作为输入路径%1
,%2
并相应地修改您的 bat 文件。
于 2013-09-30T21:17:16.577 回答