Board logo

标题: [文件操作] 批处理如何获取当前选中的文件名? [打印本页]

作者: winload    时间: 2020-1-15 15:58     标题: 批处理如何获取当前选中的文件名?

是这样的:我把一个批处理,通过修改注册表的方式加入到了JPG文件的右键菜单中,我想右键某个或选中多个jpg文件的时候执行我加入的批处理菜单。但如何获取所选中文件的名称,好让批处理针对这些文件进行操作。
我想问的是如何获取选中的文件名,而不是如何执行我的批处理,因为这个我知道
还望高手赐教
作者: went    时间: 2020-1-15 17:12

注册表值后面加上 %1
然后在你的批处理中用%1获取到文件名
作者: winload    时间: 2020-1-15 18:13

楼上说在注册表命令中加上%1但 我想知道的是如何获取文件名
比如:把一个批处理加入jpg右键菜单 名称为 所选文件名 当选中一个或多个jpg文件右键时打开此命令 则显示出所选的文件的文件名
作者: winload    时间: 2020-1-15 18:15

并且楼上所说并不有效,如果哪位高手解决我的困惑 定当送上薄礼一份
作者: went    时间: 2020-1-15 18:47

%1 不就是文件名吗
能否发出你的bat和注册表信息
作者: xczxczxcz    时间: 2020-1-15 19:03

新年红包 马云 扫头像
  1. @echo off
  2. :loop
  3. if "%~1" neq "" (
  4. for %%a in ("%~1") do echo %%~nxa
  5. shift
  6. goto :loop
  7. )
  8. pause
复制代码
把你需要的文件名全拖到批上,一个或多个。
作者: winload    时间: 2020-1-15 19:09

看来如果不把要求说全没人理解我的意思了,注册表如下:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹]

[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹\Command]
@="C:\\WINDOWS\\Exifdel.bat"

批处理内容如下:
@echo off
Setlocal EnableDelayedExpansion
for /f "tokens=*" %%i in ('dir /b *.jpg 2^>nul') do (
Jhead -purejpg "%%i"
)
目前的批处理会处理当前目录所有jpg 我要的就是处理选中的jpg
注:Jhead 是第三方命令 用于处理jpg的eixf信息的(这不重要,重要的是如何获取右键时所选的jpg文件名)
作者: went    时间: 2020-1-15 19:26

注册表:
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹]
  3. [HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹\Command]
  4. @="C:\\WINDOWS\\Exifdel.bat %1"
复制代码
批处理:
  1. @echo off
  2. echo Jhead -purejpg "%1"
  3. pause
复制代码

作者: winload    时间: 2020-1-15 19:42

回复 8# went


  试过了行不通啊哥们
作者: winload    时间: 2020-1-15 19:44

回复 8# went


    你不如直接批处理内容显示所选的文件名列出来
作者: went    时间: 2020-1-15 19:47

回复 10# winload


    没取到文件名吗,截个图看看
作者: Gin_Q    时间: 2020-1-16 10:47

  1. t.bat内容如下:
  2. @echo off
  3. echo %~nx1
  4. pause
复制代码
  1. 注册表项修改为 e:\t.bat "%1"
复制代码

作者: winload    时间: 2020-1-16 14:22

12楼完美解决问题!感谢,感谢!头像弄二维码给你发个小红包




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