基本上,有几个帖子问的或多或少是相同的,但似乎没有一个能真正回答我的问题。
因此,我有一个可移动驱动器(USB 闪存驱动器),上面有一个 *.bat 文件。这个 *.bat 文件有几个快捷方式。问题是:从逻辑上讲,驱动器号可能会在另一台计算机上发生变化,这会导致快捷方式不再起作用。
我无法使用 %windir% 之类的东西,因为它在可移动驱动器上。我也不能使用其他 *.bat 文件,只能使用快捷方式。
现在的问题是:有没有什么方法可以让快捷方式相对应,或者以某种方式允许它在任何插入的计算机上工作?
答案1
使用以下批次:
SET "_HD=1"
如果没有找到则仅用于处理 bat 的剩余部分。
--- 一行代码即可通过您指定的卷名查找磁盘:
FOR %%A IN (D E F G H I J K L M N O P Q R S T U V W X Y Z)
DO (VOL %%A: 2>NUL | FIND "Volume Name" >NUL & IF NOT ERRORLEVEL 1 SET "_HD=%%A")
-或者-
寻找您想要运行的批处理,假设在任何地方的固定位置:
IF EXIST %%A:\<path if needed>\xxx.bat SET "_HD=%%A"
答案2
放置.bat
文件在驱动器上。根文件夹可能是最容易使用的。
文件内引用的任何文件夹都不应包含任何驱动器号。引用将与文件所在的文件夹相关.bat
。