标题: [文件操作] 批处理怎样实现拖拽/拖放多个文件到CMD窗口并显示每一个文件名? [打印本页]
作者: hrhktkbzyy 时间: 2011-5-9 23:26 标题: 批处理怎样实现拖拽/拖放多个文件到CMD窗口并显示每一个文件名?
本帖最后由 pcl_test 于 2018-4-20 17:05 编辑
RT。查阅了前人的一个帖子:- @echo off
- set str=%*
- set "str=%str:"=%"
- set "str= %str%"
- call set "str=%%str: %~d1=" "%~d1%%"
- for %%i in ("%str%") do echo %%i
- pause
复制代码
其中- set str=%*
- set "str=%str:"=%"
- set "str= %str%"
- call set "str=%%str: %~d1=" "%~d1%%"
复制代码
几句是什么意思啊。这个版本为什么第一个字符串变为“”。
希望大虾帮助一下,在此谢过!
作者: hanyeguxing 时间: 2011-5-9 23:40
本帖最后由 hanyeguxing 于 2011-5-9 23:48 编辑
忽略敏感字符&等的问题:- @echo off
- :a
- echo;"%~1"
- shift
- if not "%1"=="" goto:a
- pause
复制代码
作者: hrhktkbzyy 时间: 2011-5-10 12:59
2# hanyeguxing
谢谢版主的指教。还有一个问题想请教,shift命令为什么当存在空格或者&等字符的时候就失效了
作者: CrLf 时间: 2011-5-10 13:13
2# hanyeguxing
谢谢版主的指教。还有一个问题想请教,shift命令为什么当存在空格或者&等字符的时候就失效了
hrhktkbzyy 发表于 2011-5-10 12:59
空格也会出错么?
&的问题,错不在于shift,而在于%1,详见挑战区旧帖
作者: hrhktkbzyy 时间: 2011-5-10 13:48
本帖最后由 hrhktkbzyy 于 2011-5-10 13:59 编辑
4# zm900612
我测试空格是有问题。
当文件名有空格的时候,拖放文件后命令行窗口一闪即过,没有执行pause。系统是 XP SP3
作者: hrhktkbzyy 时间: 2011-5-10 14:16
本帖最后由 hrhktkbzyy 于 2011-5-10 14:18 编辑
2# hanyeguxing
找到了问题的原因,还是在文件名存在空格的时候自动添加引号的问题,改为:复制代码
问题解决。
再次感谢版主的热心指导~
作者: smss 时间: 2019-5-10 15:02
hanyeguxing
找到了问题的原因,还是在文件名存在空格的时候自动添加引号的问题,改为:问题解决。
再 ...
hrhktkbzyy 发表于 2011-5-10 14:16
文件名中有空就需要在把文件名加上"" 如"C:\Program Files"
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |