Art*_*lin 5 windows batch-file command-prompt
我在便携式驱动器的管理分区中有一个批处理文件,在驱动器的根目录上有一个符号链接到它的快捷方式。该文件的目的是卸载驱动器并将其重新安装为指定的字母(主要是为了方便)。
当文件被打开时,它是相对于当前字母而不是卷 ID 打开的,所以很自然地,当卸载发生时,命令处理器不知道下一步要做什么,因为它根据需要读取文件而不是缓存它.
有两种可预见的解决方案,我能想到但无法弄清楚:
尽管有其他答案,但将整个批处理脚本缓存到 RAM 是微不足道的。
您只需要构建一个块,因为块在执行之前会被解析和缓存。
但是块有一些缺点,百分比扩展不起作用,因此您需要使用延迟扩展。
call并且goto无法使用,因为它们会尝试再次从文件中读取。
(goto) 2>nul & (
echo The script is started
REM Need to change the directory, else the unmount doesn't work
c:
mountvol e: /p
mountvol g: \\?\Volume{VOLID}\
dir G:\
echo The script will end now
REM Here you need the goto 2>nul hack to avoid an error message
)
Run Code Online (Sandbox Code Playgroud)
这(goto) 2>nul &在这里似乎很奇怪,但在SO:How to make a batch file delete自身中有解释?.
它也可以在没有 的情况下工作goto,但是脚本以错误消息结束
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |