Board logo

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

作者: sumirecccp    时间: 2017-8-7 18:52     标题: 拖放多个文件到批处理上执行如何获取每个文件的完整路径

本帖最后由 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也可以
作者: qazplm    时间: 2017-8-7 19:11

  1. %*
复制代码

作者: sumirecccp    时间: 2017-8-7 19:37

回复 2# qazplm


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

如果有三个文件
  1. temp1!=^@#$~`'.txt
  2. temp2!=^@#$~`'.txt
  3. temp3!=^@#$~`'.txt
复制代码
想让拖放后%1 %2 %3分别代表这三个文件,应该怎么做,用set也可以
作者: qazplm    时间: 2017-8-7 19:40

回复 3# sumirecccp

从%*分隔出来不就是了,还用问
作者: sumirecccp    时间: 2017-8-7 19:41

回复 4# qazplm


    请告诉我怎么分 用空格当分隔符的话万一文件路径有空格呢
作者: qazplm    时间: 2017-8-8 09:09

回复 5# sumirecccp

替换法形成str="C:\xxxx" "C:\xxxx" "C:\xxxx"……
再for %%a in (%str%) do echo;"%%~a"




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