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

[文本处理] 拖放多个文件到批处理上执行如何获取每个文件的完整路径

[复制链接]
发表于 2017-8-7 18:52:43 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-8-7 21:28 编辑

批处理如何使%1等参数正确处理含有特殊字符的文件名的文档
诉求如下

比如有个文本文档,文件名为
  1. temp!=^@#$~`'.txt
复制代码
然后我要拖放到一个批处理上,内容如下:

  1. echo "%~f1"
  2. pause
复制代码
运行结果为:
  1. "C:\Users\Snowball\Desktop\temp!"
复制代码
但我想要让他显示
  1. "C:\Users\Snowball\Desktop\temp!=^@#$~`'.txt"
复制代码
请问应该怎么处理,希望尽量用纯批处理方式解决,使用powershell也可以
发表于 2017-8-7 19:11:49 | 显示全部楼层
  1. %*
复制代码
 楼主| 发表于 2017-8-7 19:37:29 | 显示全部楼层
回复 2# qazplm


    可以显示,谢谢
那下面这种情况应该怎么办呢

如果有三个文件

  1. temp1!=^@#$~`'.txt
  2. temp2!=^@#$~`'.txt
  3. temp3!=^@#$~`'.txt
复制代码
想让拖放后%1 %2 %3分别代表这三个文件,应该怎么做,用set也可以
发表于 2017-8-7 19:40:58 | 显示全部楼层
回复 3# sumirecccp

从%*分隔出来不就是了,还用问
 楼主| 发表于 2017-8-7 19:41:54 | 显示全部楼层
回复 4# qazplm


    请告诉我怎么分 用空格当分隔符的话万一文件路径有空格呢
发表于 2017-8-8 09:09:27 | 显示全部楼层
回复 5# sumirecccp

替换法形成str="C:\xxxx" "C:\xxxx" "C:\xxxx"……
再for %%a in (%str%) do echo;"%%~a"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 00:14 , Processed in 0.018495 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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