【问题标题】:Read current drive of batch file and use drive name in command读取批处理文件的当前驱动器并在命令中使用驱动器名称
【发布时间】:2016-08-15 08:03:03
【问题描述】:

我有以下问题:我们向客户发送了一个 U 盘,其中包含他们需要通过导入功能导入 Linux 计算机的内容(对 Linux 部分没有影响,仅对 U 盘部分有影响) . Linux 导入功能无法读取带空格的文件,即在 Windows 计算机的每个驱动器上创建的文件“系统卷信息”会破坏导入功能。 通过谷歌研究,我发现如何删除 USB-Stick 驱动器上的这个文件。如果我在从我的 Windows 计算机上断开 USB 记忆棒之前这样做,我可以在 Linux 计算机上导入内容。我使用包含以下命令的批处理文件来执行此操作:

rd /s /q D:\"系统卷信息"

但是,这些 USB 棒在导入之前会发送给希望在 Windows 计算机上查看内容的客户,即重新创建文件“系统卷信息”。我想让客户尽可能简单,并将批处理文件放在棒上,他们只需双击它即可删除文件。这就是我的问题所在:我不能确定它会是驱动器 D:棒子所在的位置。这就是为什么我正在寻找一个功能或命令来读取批处理文件(USB-Stick)的驱动器并执行删除“系统卷信息”的命令。我读了一些关于 %~d0 的东西,但我不知道我具体是如何编写命令以使其工作的。

你能帮我吗?我对批处理的经验非常有限,所以如果这个问题对您来说似乎很简单,我深表歉意。

谢谢 米拉克

【问题讨论】:

  • 目录 System Volume Information 仅由 Windows 在 NTFS 卷上创建。如果可能的话,在您的 USB 记忆棒 FAT32 或 exFAT 上用作文件系统,并且根本不需要批处理文件来删除此目录。有关 %~d0(参数 0 的驱动器 - 批处理文件名)或 %~dp0(参数 0 的驱动器和路径)的说明,请打开命令提示符窗口,在此处运行 call /? 并阅读使用的此命令的输出帮助通常从另一个批处理文件调用一个批处理文件。

标签: batch-file


【解决方案1】:

我没有测试过代码:

@echo off
set P=%~d0
set "P=%P%\system volume information"
rd /s /q "%P%"

【讨论】:

  • 非常感谢,正是我所需要的。我唯一改变的是在代码中添加一个额外的 ":@echo off set P=%~d0 set "P=%P%\"system volume information" rd /s /q %P%
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多