标题: [文件操作] 批处理如何区分当前文件是在硬盘打开、光盘打开、U盘打开?谢谢! [打印本页]
作者: Shuye 时间: 2023-4-3 13:23 标题: 批处理如何区分当前文件是在硬盘打开、光盘打开、U盘打开?谢谢!
在不同的介质里打开文件有没有什么不同的标记?
谢谢!
作者: jyswjjgdwtdtj 时间: 2023-4-3 13:38
介质是啥意思?
作者: Shuye 时间: 2023-4-3 13:51
回复 2# jyswjjgdwtdtj
指存储介质,硬盘、光盘、U盘的存储介质不同。
作者: jyswjjgdwtdtj 时间: 2023-4-3 16:12
这能有啥区别?都是软件读取文件的内容,“解释”出图片、视频、批处理………………
作者: jyswjjgdwtdtj 时间: 2023-4-3 16:15
硬是要说出点不同 就是文件们一个在C、D盘,一个在E、F、G、H、I、J、K盘
作者: czjt1234 时间: 2023-4-3 18:07
wmic path Win32_LogicalDisk get DriveType
未知 (0)
无根目录 (1)
可移动磁盘 (2)
本地磁盘 (3)
网络驱动器 (4)
光盘 (5)
RAM 磁盘 (6)
作者: Shuye 时间: 2023-4-3 18:11
回复 5# jyswjjgdwtdtj
如何区分是“硬盘”,还是“光盘”、“U盘”呢?
作者: Shuye 时间: 2023-4-3 18:18
回复 6# czjt1234
谢谢 czjt1234 兄!
比如,现在是在“光盘”打开,DriveType 值是 “5”。
怎样才能得到 x=5 ?
作者: terse 时间: 2023-4-3 19:47
如果WMIC可用的话可以满足你的要求
作者: yakeyun 时间: 2023-4-3 22:35
本帖最后由 yakeyun 于 2023-4-3 22:38 编辑
回复 8# Shuye
wmic path Win32_LogicalDisk get Caption,Description,DriveType
做关联盘符就可以取到对象了,比如抓取进程名文件路径,通过获取盘符,然后和后面的介质类型做匹配。
例如已知运行进程名为“test.exe”获取到的路径盘符是E:\,其运行介质为本地磁盘。
作者: Shuye 时间: 2023-4-4 00:50
回复 10# yakeyun
谢谢 yakeyun 兄!
不过,好像还不太明白。
作者: terse 时间: 2023-4-4 06:10
- @echo off
- set p=c:
- for /f "tokens=*" %%i in ('wmic logicaldisk where "name='%p%'" get DriveType^,Description^,name /value') do (
- for /f "tokens=*" %%j in ("%%i") do set %%j
- )
- echo %name% %Description%
- pause
复制代码
作者: Shuye 时间: 2023-4-4 14:14
回复 12# terse
谢谢 terse 兄!
不过,在U盘上执行,结果还是:C: Local Fixed Disk
作者: yakeyun 时间: 2023-4-4 14:33
回复 11# Shuye
1.打开的文件是批处理还是EXE文件?
2.如果是EXE文件,运行后的进程名称是什么?
作者: Shuye 时间: 2023-4-4 14:55
回复 14# yakeyun
想在批处理的开头作个判断。
作者: buyiyang 时间: 2023-4-4 15:33
- for /f "skip=1 tokens=2" %%i in ('wmic logicaldisk where "name='%~d0'" get Caption^,Name^,Description') do set "Description=%%i"
- echo,%Description%
复制代码
作者: buyiyang 时间: 2023-4-4 15:38
- for /f "tokens=2" %%i in ('wmic logicaldisk where "name='%~d0'" get Caption^,Description^,Name') do set "Description=%%i"
- echo,%Description%
复制代码
去掉skip也可以
作者: Shuye 时间: 2023-4-4 15:52
回复 17# buyiyang
测试成功,谢谢 buyiyang 兄!
作者: terse 时间: 2023-4-4 17:48
回复 13# Shuye
set p=c:
这里只是给个例子 具体要你自己根据环境定义的
作者: Shuye 时间: 2023-4-4 18:37
回复 19# terse
谢谢 terse 兄!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |