标题: [文件操作] 批处理如何获取当前选中的文件名? [打印本页]
作者: 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
新年红包 马云 扫头像- @echo off
-
- :loop
- if "%~1" neq "" (
- for %%a in ("%~1") do echo %%~nxa
- shift
- goto :loop
- )
- 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
注册表:- Windows Registry Editor Version 5.00
-
- [HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹]
-
- [HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\清除痕迹\Command]
- @="C:\\WINDOWS\\Exifdel.bat %1"
复制代码
批处理:- @echo off
- echo Jhead -purejpg "%1"
- 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
- t.bat内容如下:
- @echo off
- echo %~nx1
- pause
复制代码
复制代码
作者: winload 时间: 2020-1-16 14:22
12楼完美解决问题!感谢,感谢!头像弄二维码给你发个小红包
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |