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

[文件操作] 批处理怎样实现拖拽/拖放多个文件到CMD窗口并显示每一个文件名?

本帖最后由 pcl_test 于 2018-4-20 17:05 编辑

RT。查阅了前人的一个帖子:
  1. @echo off
  2. set str=%*
  3. set "str=%str:"=%"
  4. set "str= %str%"
  5. call set "str=%%str: %~d1=" "%~d1%%"
  6. for %%i in ("%str%") do echo %%i
  7. pause
复制代码
其中
  1. set str=%*
  2. set "str=%str:"=%"
  3. set "str= %str%"
  4. call set "str=%%str: %~d1=" "%~d1%%"
复制代码
几句是什么意思啊。这个版本为什么第一个字符串变为“”。
希望大虾帮助一下,在此谢过!

本帖最后由 hanyeguxing 于 2011-5-9 23:48 编辑

忽略敏感字符&等的问题:
  1. @echo off
  2. :a
  3. echo;"%~1"
  4. shift
  5. if not "%1"=="" goto:a
  6. pause
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

2# hanyeguxing
谢谢版主的指教。还有一个问题想请教,shift命令为什么当存在空格或者&等字符的时候就失效了

TOP

2# hanyeguxing
谢谢版主的指教。还有一个问题想请教,shift命令为什么当存在空格或者&等字符的时候就失效了
hrhktkbzyy 发表于 2011-5-10 12:59

空格也会出错么?
&的问题,错不在于shift,而在于%1,详见挑战区旧帖

TOP

本帖最后由 hrhktkbzyy 于 2011-5-10 13:59 编辑

4# zm900612
我测试空格是有问题。
当文件名有空格的时候,拖放文件后命令行窗口一闪即过,没有执行pause。系统是 XP SP3

TOP

本帖最后由 hrhktkbzyy 于 2011-5-10 14:18 编辑

2# hanyeguxing
找到了问题的原因,还是在文件名存在空格的时候自动添加引号的问题,改为:
  1. if not "%~1"=="" goto:a
复制代码
问题解决。
再次感谢版主的热心指导~

TOP

hanyeguxing
找到了问题的原因,还是在文件名存在空格的时候自动添加引号的问题,改为:问题解决。
再 ...
hrhktkbzyy 发表于 2011-5-10 14:16

文件名中有空就需要在把文件名加上"" 如"C:\Program Files"

TOP

返回列表