[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何区分当前文件是在硬盘打开、光盘打开、U盘打开?谢谢!


在不同的介质里打开文件有没有什么不同的标记?

谢谢!

介质是啥意思?

TOP

回复 2# jyswjjgdwtdtj

指存储介质,硬盘、光盘、U盘的存储介质不同。

TOP

这能有啥区别?都是软件读取文件的内容,“解释”出图片、视频、批处理………………

TOP

硬是要说出点不同 就是文件们一个在C、D盘,一个在E、F、G、H、I、J、K盘

TOP

wmic path Win32_LogicalDisk get DriveType

未知 (0)
无根目录 (1)
可移动磁盘 (2)
本地磁盘 (3)
网络驱动器 (4)
光盘 (5)
RAM 磁盘 (6)

QQ 20147578

TOP

回复 5# jyswjjgdwtdtj

如何区分是“硬盘”,还是“光盘”、“U盘”呢?

TOP

回复 6# czjt1234

谢谢 czjt1234 兄!

比如,现在是在“光盘”打开,DriveType 值是 “5”。

怎样才能得到 x=5  ?

TOP

如果WMIC可用的话可以满足你的要求

TOP

本帖最后由 yakeyun 于 2023-4-3 22:38 编辑

回复 8# Shuye


wmic path Win32_LogicalDisk get Caption,Description,DriveType

做关联盘符就可以取到对象了,比如抓取进程名文件路径,通过获取盘符,然后和后面的介质类型做匹配。
例如已知运行进程名为“test.exe”获取到的路径盘符是E:\,其运行介质为本地磁盘。

TOP

回复 10# yakeyun

谢谢 yakeyun 兄!

不过,好像还不太明白。

TOP

  1. @echo off
  2. set p=c:
  3. for /f "tokens=*" %%i in ('wmic logicaldisk where "name='%p%'" get DriveType^,Description^,name  /value') do (
  4.      for /f "tokens=*" %%j in ("%%i") do set %%j
  5. )
  6. echo %name%  %Description%
  7. pause
复制代码

TOP

回复 12# terse

谢谢 terse 兄!

不过,在U盘上执行,结果还是:C:  Local Fixed Disk

TOP

回复 11# Shuye


1.打开的文件是批处理还是EXE文件?
2.如果是EXE文件,运行后的进程名称是什么?

TOP

回复 14# yakeyun

想在批处理的开头作个判断。

TOP

返回列表