Board logo

标题: [文件操作] 【已解决】拖放法获取文件路径如何处理路径带空格的问题 [打印本页]

作者: hbb    时间: 2016-8-1 17:11     标题: 【已解决】拖放法获取文件路径如何处理路径带空格的问题

本帖最后由 hbb 于 2016-8-1 21:45 编辑

我有如下代码,请教下,如果我把带有空格文件名的文件拖到批处理上,执行就会出错,请教如何修改此脚本,谢谢!
  1. @echo off
  2. if /i "%1" == "" echo 请把书签文件拖到此批处理。 & pause>nul & goto :eof
  3. copy %1 "D:\Users\Administrator\Desktop">nul & echo 恢复书签成功 & pause>nul
复制代码

作者: ygqiang    时间: 2016-8-1 18:34

回复 1# hbb


    "%1"
作者: bbaa    时间: 2016-8-1 20:15

  1. @echo off
  2. if /i "%*" == "" echo 请把书签文件拖到此批处理。 & pause>nul & goto :eof
  3. copy /y "%*" "D:\Users\Administrator\Desktop">nul & echo 恢复书签成功 & pause>nul
复制代码

作者: hbb    时间: 2016-8-1 21:19

感谢楼上两位大哥,试过了还是不行,我的书签文件名格式是“Bookmarks.2016-08-01 15∶19”,单独执行以下代码就可以
  1. @echo on
  2. copy %1 "D:\Users\Administrator\Desktop"
复制代码

作者: pcl_test    时间: 2016-8-1 21:24

本帖最后由 pcl_test 于 2016-8-1 21:30 编辑

%1对于带空格的路径会带上双引,所以错误会发生在if语句而不是copy语句
%~1则可去掉双引
  1. @echo off
  2. if "%~1" == "" echo 请把书签文件拖到此批处理。 &>nul ping -n 2 0&exit
  3. rem copy "%~1"亦可
  4. copy %1 "D:\Users\Administrator\Desktop\">nul&&echo 恢复书签成功 & pause>nul
复制代码

作者: ai20110304    时间: 2016-8-1 21:40

试下
%~nx1
作者: hbb    时间: 2016-8-1 21:45

感谢版主热心恢复,问题解决了,谢谢!




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