Board logo

标题: [文件操作] 用cmd命令打开指定文件的属性窗口 [打印本页]

作者: 小白龙    时间: 2023-4-19 11:34     标题: 用cmd命令打开指定文件的属性窗口

如何用批处理命令, 打开指定文件的属性窗口

就是选中文件后,点右键, 再点属性后弹出的那个窗口, 是不是一个shell命令, 从哪里可以找到?
作者: czjt1234    时间: 2023-4-19 12:57

  1. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" "C:\Program Files" & pause & exit
  2. Set oShell = CreateObject("Shell.Application")
  3. Set oFolderItem = oShell.NameSpace(17).ParseName(wsh.Arguments(0))
  4. oFolderItem.InvokeVerb "Properties"
  5. wsh.Sleep 60 * 1000
复制代码

作者: 小白龙    时间: 2023-4-19 13:28

回复 2# czjt1234

多谢大佬,

我试了一下文件参数, 单文件可以, 那多个文件怎么实现呢?
手动操作时, 选定了多个文件, 然后点右键, 选择属性, 弹出一个多个文件属性窗口
作者: czjt1234    时间: 2023-4-19 13:42

vbs
  1. Set oShell = CreateObject("Shell.Application")
  2. Set oFolder = oShell.NameSpace("C:\windows")
  3. Set oFolderItems = oFolder.Items()
  4. oFolderItems.Filter &H40 + &H80 + &H10000, "*.exe"
  5. oFolderItems.InvokeVerbEx "Properties"
  6. wsh.Sleep 60 * 1000
复制代码
指定文件夹下的所有 .exe 文件
作者: 小白龙    时间: 2023-4-19 14:07

回复 4# czjt1234


    多谢大佬, 我的意思是里面的两个文件, 比较, a.txt和c.txt  只显示这两个文件的属性窗口
作者: czjt1234    时间: 2023-4-19 14:20

  1. Set oShell = CreateObject("Shell.Application")
  2. Set oFolder = oShell.NameSpace("C:\windows")
  3. Set oFolderItems = oFolder.Items()
  4. oFolderItems.Filter &H40 + &H80 + &H10000, "?.txt"
  5. oFolderItems.InvokeVerbEx "Properties"
  6. wsh.Sleep 60 * 1000
复制代码
只会这样了,所有单个字母的名字的txt
作者: czjt1234    时间: 2023-4-19 15:26

你可以把你的真实目的说出来
看属性的意义何在,是要看文件总大小,比较2个地方的文件总大小的差异?
作者: 小白龙    时间: 2023-4-19 16:23

回复 7# czjt1234


    目的就是看指定的N个文件的属性, 我知道用PS能取得对象的属性, 但是不直观,
作者: czjt1234    时间: 2023-4-19 16:54

回复 8# 小白龙


    属性无非总大小啊

要是看指定的几个文件的总大小倒是可以
作者: idwma    时间: 2023-4-19 19:12

回复 6# czjt1234


多个文件名试试用分号;隔开
像“a.txt;b.txt”
作者: 小白龙    时间: 2023-4-19 19:37

回复 10# idwma


   不行, 提示缺少对象
作者: idwma    时间: 2023-4-19 19:58

回复 11# 小白龙

https://learn.microsoft.com/zh-c ... 2.filedialog.filter
这个是参考文档的,意思应该是一样的,不行就不知道了
作者: czjt1234    时间: 2023-4-19 20:25

  1. Set oShell = CreateObject("Shell.Application")
  2. Set oFolder = oShell.NameSpace("C:\windows")
  3. Set oFolderItems = oFolder.Items()
  4. oFolderItems.Filter &H40 + &H80 + &H4000 + &H10000, "a.txt;b.txt"
  5. oFolderItems.InvokeVerbEx "Properties"
  6. wsh.Sleep 60 * 1000
复制代码

作者: 小白龙    时间: 2023-4-19 21:14

回复 13# czjt1234


    完整代码是下面这样吗? 一直光标闪,没有动静
  1. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" & pause & exit
  2. Set oShell = CreateObject("Shell.Application")
  3. Set oFolder = oShell.NameSpace("C:\windows")
  4. Set oFolderItems = oFolder.Items()
  5. oFolderItems.Filter &H40 + &H80 + &H4000 + &H10000, "a.txt;b.txt"
  6. oFolderItems.InvokeVerbEx "Properties"
  7. wsh.Sleep 60 * 1000
复制代码

作者: czjt1234    时间: 2023-4-19 21:19

非要bat吗,我这是vbs
一个是bat后缀名,一个是vbs后缀名
vbs还没有难看的黑框
作者: czjt1234    时间: 2023-4-19 21:27

本帖最后由 czjt1234 于 2023-4-19 21:29 编辑

bat
  1. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" "C:\Windows" "regedit.exe;win.ini" & pause & exit
  2. Set oShell = CreateObject("Shell.Application")
  3. Set oFolder = oShell.NameSpace(wsh.Arguments(0))
  4. Set oFolderItems = oFolder.Items()
  5. oFolderItems.Filter &H40 + &H80 + &H10000, wsh.Arguments(1)
  6. oFolderItems.InvokeVerbEx "Properties"
  7. wsh.Sleep 60 * 1000
复制代码


把 "C:\Windows" "regedit.exe;win.ini" 改成你的目录和文件名
作者: 小白龙    时间: 2023-4-19 22:06

回复 15# czjt1234

多谢大佬, 刚刚发现, 不加后面的延时, 窗口直接就关了, 有办法去掉延时吗?
作者: czjt1234    时间: 2023-4-20 05:45

回复 17# 小白龙


    不能去掉,这个 shell 就这样,除非有别的对象可以




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2