BAT 更改分配的驱动器盘符,将驱动器的内容复制到 C: 然后在 C: 下运行程序

问题描述 投票:0回答:2

当前每次我放入另一个系统时都会运行闪存将驱动器盘符映射到闪存驱动器。之后驱动器关闭并且bat未完成执行。

我编写的脚本工作正常,但我必须运行一次批处理来分配指定的字母,然后在分配字母后再次运行它以完成其余的任务。

我想做的是将闪存驱动器的内容复制到 C:(我用 md 创建的文件夹)

然后执行我刚刚复制过来的文件。

这是我到目前为止所拥有的。只是想完成此操作以在多个客户端之间自动化我的更新过程。

for /f "tokens=2,3 delims= " %%A in ('echo listvolume ^| diskpart ^| findstr "PC 设置工具"') do ( 设置 Acedrive=%%B (回显选择音量%%A 回显分配字母=P) |磁盘部分 )

mkdir c:\dellutil

xcopy“P:\BIOS 和驱动程序更新实用程序\SourceFiles”“c:\dellutil”

regedit.exe /s c:\dellutil unonceLaunch3.reg

Manage-bde.exe -protectors -disable c:

“C:\dellutil\DellCommandUtility.EXE”

windows batch-file cmd automation directory
2个回答
0
投票

为什么不在闪存驱动器上的批处理文件中使用以下代码?

@echo off
rem Make directory of batch file the current directory.
pushd "%~dp0"

rem Copy files from directory "BIOS and Driver Update Utility\SourceFiles"
rem of current drive - the drive of the batch file - to C:\DellUtil whereby
rem XCOPY automatically creates the directory if not already existing.
rem A relative path starting with a backslash is relative to root of
rem current drive.
xcopy "\BIOS and Driver Update Utility\SourceFiles" "C:\DellUtil\" /H /I /Q /R /Y

regedit.exe /s C:\DellUtil\runonceLaunch3.reg
Manage-bde.exe -protectors -disable c:
"C:\DellUtil\DellCommandUtility.exe"

rem Restore previous current directory.
popd

这绝对比更改闪存驱动器的字母要容易,如果另一个驱动器已经有字母 P,则更改闪存驱动器的字母总是会失败。

还有一个很好的旧命令SUBST。在命令提示符窗口中运行

subst /?
了解有关此命令的详细信息。


0
投票

谢谢。 SUBST 命令对我来说效果很好。我的问题更简单;我偶尔会使用与通常使用的不同的外部驱动器,并且即使原始外部驱动器丢失,它也会被分配不同的字母。发生这种情况时,我的链接都不起作用。到目前为止,我一直在单击磁盘管理设置并重新分配驱动器号,但使用 subst 的简单批处理文件使生活变得更轻松:

回声关闭

echo 即将用驱动器盘符 E 替换驱动器盘符 F

echo 如果驱动器已连接到 E,则必须先将其删除!

echo 按 Ctrl-C 中止

暂停

替换 F: E:\

© www.soinside.com 2019 - 2024. All rights reserved.