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

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


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

谢谢!

回复 19# terse

谢谢 terse 兄!

TOP

回复 13# Shuye

set p=c:
这里只是给个例子 具体要你自己根据环境定义的

TOP

回复 17# buyiyang

测试成功,谢谢 buyiyang 兄!

TOP

  1. for /f "tokens=2" %%i in ('wmic logicaldisk where "name='%~d0'" get Caption^,Description^,Name') do set "Description=%%i"
  2. echo,%Description%
复制代码
去掉skip也可以
1

评分人数

    • Shuye: 测试成功!技术 + 1

TOP

  1. for /f "skip=1 tokens=2" %%i in ('wmic logicaldisk where "name='%~d0'" get Caption^,Name^,Description') do set "Description=%%i"
  2. echo,%Description%
复制代码
1

评分人数

    • Shuye: 测试成功!技术 + 1

TOP

回复 14# yakeyun

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

TOP

回复 11# Shuye


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

TOP

回复 12# terse

谢谢 terse 兄!

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

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

回复 10# yakeyun

谢谢 yakeyun 兄!

不过,好像还不太明白。

TOP

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

回复 8# Shuye


wmic path Win32_LogicalDisk get Caption,Description,DriveType

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

TOP

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

TOP

回复 6# czjt1234

谢谢 czjt1234 兄!

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

怎样才能得到 x=5  ?

TOP

回复 5# jyswjjgdwtdtj

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

TOP

返回列表