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

TOP

楼主在新年钟声敲响时发帖
钻研精神实在可嘉!
感觉很像某位大神的作风

至于楼顶提到的命令行参数传递特殊字符的问题
因为我曾经参与过讨论并给出了"批处理基本无解"的推论
自然很有兴趣了解有人可以打破这个推论找到新思路

不过看了楼主的所有发帖
似乎都没有测试 (abc)&(xyz).cmd
那是我在你引用的旧帖中所遗留下的尾巴问题
如果你的代码能通过就非常有意义了

建议你参照引用帖中的代码建立测试文件
这样的测试结果更容易引起原帖的参与者的共鸣
另外建议代码结果尽量不要用贴图
会把一些潜在的讨论者拒之门外
包括很多手机wap用户和所有匿名用户

CrLf版主的两段代码都有新奇之处
尤其第一段代码的创新令人击节
可惜兼容性也要差一些
另外两端代码都不支持多文件同时拖拽

defanive似乎没有注意到11楼aries215老兄的提醒
原帖讨论的是“拖至批处理的图标上执行”
而非“批处理的窗口内执行”
所以使用set/p的方向就是有误的

至于拖动文件到批处理图标上运行
是否如find在20楼所说的“蛋疼”
那就是另外一回事了
此处不论
天的白色影子

TOP

回复 21# watermark
那你发出来吧,看不到你代码我也不好评论
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 19# defanive
你的代码我实在看不懂,请原谅我水平有限。
就事论事的说,不管什么叫“转义”,我那个批处理不需要用到。

TOP

回复 11# aries215


需要拖动的,都是蛋疼的

TOP

回复 18# watermark
我那个代码也可以实现你的效果,有简单的为什么不用简单的
所谓转义是在解释时特殊字符被赋予了特殊意义,!!的拓展在转义之后,自然就是原生支持,没什么特别的
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 14# CrLf

我的全程无需转义,对各种合法的文件名都能轻松处理,所以才说“原生支持”。
关键是开头 set 那一句吧, 当然也不像楼上那样的才两行命令。

伟大的斑竹们啊,请饶恕我继续故弄玄虚一把呀。。。

TOP

回复 12# watermark
我也测试过了,你估计代码都没看吧
我md的时候已经加过一次双引号了,你输入的时候把双引号去掉不就是了,或者直接把我代码里面的双引号去掉不就好了
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

测试过才发的,既然实现 echo 了,改一下不就是 md 了吗?不过楼主貌似有不一样的思路,很感兴趣,期待…

TOP

本帖最后由 watermark 于 2012-1-23 21:28 编辑

回复 14# CrLf

大哥, 你这没有任何结果的, 自己没测试过.

我还是建议大家贴图就好了, 测试通过的才贴代码.

我是说原生支持, 但并非那么普通.

TOP

本帖最后由 CrLf 于 2012-1-24 19:08 编辑

试写两种思路…
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=!cmdcmdline:*^" =!
  3. set str= !str:^"=!
  4. for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do set "str=!str: %%a:=" "%%a:!"
  5. for /f "delims=" %%a in (^"!str:~2!"") do endlocal&echo %%a
  6. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=!cmdcmdline:*" =!
  3. for %%a in (^^ ^& ^, ^; ^( ^) ) do set "str=!str:%%a=^%%a!"
  4. if !str:~-1!==^" set "str=!str:~,-1!"
  5. (endlocal
  6. for /f "delims=" %%a in ("%str:""="%") do echo %%a)
  7. pause
复制代码
修改两个不严谨的地方。
方案一对付拖动文件到图标时应该是比较通用的,但是难以应付传递参数的情况。因等号无法直接替换,故在方案二中未对其进行转义处理,其实思路和旧帖中qzw的方案类似,如他当时所言,逐字转义确实是比较稳妥可靠的办法,所得的结果也比较通用。

TOP

本帖最后由 watermark 于 2012-1-23 19:44 编辑

回复 8# defanive

Win2008 不能拖入文件至批处理窗口, 而且你的是在同级目录内生成同名文件夹!
我的批处理是没有"/p"的, 也不存在这些问题.

TOP

回复 8# defanive

不知道你是什么意思, 看看你8楼的代码执行结果吧:

今天是春节, 不是愚人节.

TOP

回复 8# defanive
是拖至批处理的图标上执行.

TOP

回复 9# cyxgg
是的,在这里发了,然后转发去贴吧的
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

返回列表