[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

回复 5# sumirecccp

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

TOP

回复 4# qazplm


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

TOP

回复 3# sumirecccp

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

TOP

回复 2# qazplm


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

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

TOP

  1. %*
复制代码

TOP

返回列表