我正在尝试编写一个批处理脚本,它总是在特定位置执行(在本例中是在我的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:
。
答案 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