特定设备上的命令

时间:2015-06-01 21:10:41

标签: powershell batch-file cmd

我正在尝试编写一个批处理脚本,它总是在特定位置执行(在本例中是在我的USB-Stick上),所以通常我会使用D:,但有时候棒子会有另一个驱动器信件。因此,我试图通过其名称(USB_Stick)找到该设备。

我还没有找到通过批处理命令执行此操作的方法。

PowerShell命令如下所示:

@(get-wmiobject -query \"select deviceid from win32_logicaldisk where volumename='USB-STICK'\")[0].deviceid"

但我不知道如何使用此PowerShell命令的结果。

我尝试过这样的事情:

for /f "usebackq" %%x in (`powershell.exe -Command "@(get-wmiobject -query \"select deviceid from win32_logicaldisk where volumename='USB-STICK'\")[0].deviceid"`) do (
    set res=%%x
)
@echo %res%

但结果只是ommands.GetWmiObjectCommand而不是D:

2 个答案:

答案 0 :(得分:1)

如果您还要使用批处理脚本,请使用wmic命令行实用程序:

@echo off

for /f "delims== tokens=2" %%d in (
  'wmic logicaldisk where volumename^="USB-STICK" get deviceid /value'
) do set "deviceId=%%~d"

echo %deviceId%

使用带有wmic参数的/value创建name=value行作为输出,您可以通过将for定义为=来在if(!mysqli_select_db($database) 循环中拆分分隔符。

答案 1 :(得分:0)

如果我理解正确,批量文件在USB记忆棒上运行?如果是这样,那么可以通过%~d0

获得操纵杆的驱动器号(没有斜线)