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

[文件操作] 其实CMD原生支持操作含有多种形式特殊字符的文件和目录!

CMD原生就支持解析多种特殊字符,只要是合法的文件(夹)名称,批处理都能正确处理,无需修改系统文件和注册表,不必投机取巧和钻漏洞。

如下图,把含有任意 =,;&^~@#$%()' 字符的文件拖放至批处理的图标上, 生成一个新的文件夹,绝无任何PS:

代码迟一些再公布。

祝大家新年快乐!

虽然不知道楼主在说什么,但是感觉地球人都知道的样子。

TOP

本帖最后由 watermark 于 2012-1-23 17:33 编辑

回复 2# find
http://www.bathome.net/viewthread.php?tid=7509
你写一个看看。
感觉你都没看清楚。

TOP

楼主有兴趣可以测试一下xp系统下的

TOP

回复 4# applba

特意进入 XP SP3 的 PE 里测试了一下,结论一样!
Win98 和 Win3.1 我就不测了,其实能否解析特殊字符跟系统版本无关。

TOP

回复 3# watermark


那个帖子是要求多个文件拖到cmd窗口后获取每一文件的完整路径,跟你这个有何关联?

TOP

晕啊,感觉很厉害的样子,楼主公布代码吧。

TOP

不知道LZ什么意思
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p pth=
  4. md "!pth!"
  5. pause
复制代码
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 8# defanive


    你不是在bat吧发布魔塔的那个?

TOP

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

TOP

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

TOP

回复 8# defanive

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

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

TOP

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

回复 8# defanive

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

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 21:28 编辑

回复 14# CrLf

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

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

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

TOP

返回列表