[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

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

本帖最后由 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也可以

  1. %*
复制代码

TOP

回复 2# qazplm


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

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

TOP

回复 3# sumirecccp

从%*分隔出来不就是了,还用问

TOP

回复 4# qazplm


    请告诉我怎么分 用空格当分隔符的话万一文件路径有空格呢

TOP

回复 5# sumirecccp

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

TOP

返回列表