找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25791|回复: 5

[文件操作] [已解决]批处理命令set /p中路径提取文件名

[复制链接]
发表于 2013-7-27 13:06:45 | 显示全部楼层 |阅读模式
假设
  1. @echo off
  2. set /p name=
  3. echo %name%
  4. pause
复制代码
这段代码是直接把输入的内容输出,如果用户直接把一个文件拖到窗口里,就会获得类似下面地址
  1. "C:\Program Files\7-Zip\readme.txt"
复制代码
我开始的想法是直接采用for 语句进行过滤,但如果用户单纯输入readme.txt就会出错误。

我的问题是,如何可以在输出时只提取保留文件名 (readme.txt),但同时也支持像上面批处理代码一样手动输入文件名时可以正确获取到文件名?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-7-27 13:38:09 | 显示全部楼层
不明白你想干什么。
这样试试:
  1. @echo off
  2. set /p name=输入或拖入:
  3. for %%a in ("%name:"=%") do echo,%%~nxa
  4. pause
复制代码
发表于 2013-7-27 13:39:02 | 显示全部楼层

  1. @echo off
  2. set /p name=
  3. for %%a in (%name%) do echo %%~nxa
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
pZjVa0 + 1 感谢分享

查看全部评分

 楼主| 发表于 2013-7-27 14:21:35 | 显示全部楼层
回复 3# weichenxiehou


    非常好。我很喜欢你的签名
发表于 2013-7-28 12:21:19 | 显示全部楼层
回复 4# pZjVa0


    别人帮你解决了问题之后,请给人家加分。
 楼主| 发表于 2013-7-28 12:41:50 | 显示全部楼层
回复 5# Batcher


    昨天他回答时我的分提前用了,所以加不了,抱歉。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 16:06 , Processed in 0.018610 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表