今天算了忙上了18个小时了......在研究批进度条时发现引号和转义之间的暧昧关系..终于在历时4个小时的整理中把这个教程弄完......这里要谢谢batman提供的帮助:
第一次发,不知道怎么格式才好.就发我自己学习时最常用的代码加语句测试方式.
教程如下:
- @echo off
- title 引号与转义符号的恶魔规则()
- color 5a
- echo.
- echo.
- echo by.............【极度沉沦】................(辅导batman)
- echo.
- echo.
- echo 在搜索百度.goole及相关批论坛均无发现....
- echo.
- echo.今晚在咨询师傅时:师傅说真是活到老学到老.他们以前都没有注意这方面
- echo.
- echo 在""中的特殊字符不需要加转义符号否则失去意义
- echo.
- echo 加了的效果
- set "a=echo 12345&echo ^>nul"
- %a%
- pause
- echo 没有加的效果
- set "a=echo 12345&echo >nul"
- %a%
- pause
- echo.如果加的^个数是偶数2k就相当与转换成k个普通的符号^没有转义的意思,如果加的^个数是奇数2k+1就相当与前2k转换成k个普通的^而最后个为转义字符
- echo.
- echo.
- echo 以下是偶数的效果
- set "a=echo 12345&echo ^^^^123"
- %a%
- pause
- echo 以下是奇数的效果
- set "a=echo 12345&echo ^^^123"
- %a%
- pause
- echo.
- echo.
- echo 接下来是''与""中^的区别
- echo.
- echo.
- echo 如果特殊符号在''单引号中则全部的特殊符号都得加上转义符号
- echo.
- echo.
- echo ''单引号中加入转义符号的效果
- for /f "delims=" %%a in ('ipconfig /all^|findstr /i "ip"') do echo %%a
- pause>nul
- echo.
- rem echo ''单引号中不加入转义符号的效果
- rem for /f "delims=" %%a in ('ipconfig /all|findstr /i "ip"') do echo %%a
- rem pause>nul(执行出错)
- echo 普通时候不需要考虑转义情况(指没有""双引号,单引号'')
- ipconfig /all|findstr /i "ip"
- pause>nul
- echo.
- echo 单引号的应用举例1
- for /f %%a in ('^(echo 1234^&echo 435648^&echo 43123^)^|findstr "123"^|findstr "43"') do echo %%a
- pause>nul
- echo.
- echo 单引号的应用举例2
- echo.
- for /f %%a in ('^(echo 1234^&echo 5648^&echo 4312^)^|findstr "12"^|findstr "34"') do echo %%a
- pause>nul
- echo.看看以下进度条...区别就在其中了
- echo 引号类循环..................进度
- set "a=set /p=■<nul&ping/n 1 127.1 >nul"
- echo.
- echo 程序正在初始化. . .
- echo.
- for /l %%i in (0 1 39) do %a%
- pause>nul
- @echo off
- title 初始化进行中
- color 1f
- echo 在双引号内的特殊符号不需要加转义符号(相当于默认就加上了)
- set "a=set /p=■<nul&ping/n 1 127.1 >nul&"
- echo.
- echo 程序正在初始化. . .
- echo.
- %a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
- pause>nul
- @echo off
- title 初始化进行中
- color 1f
- echo 为了echo显示内容在引用set的变量是我们必须使用转义符号把符号转换成普通含义
- set a=set /p=■^<nul^&ping/n 1 127.1 ^>nul^&
- echo.
- echo 程序正在初始化. . .
- echo.
- %a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
- pause>nul
- @echo off
- title 初始化进行中
- color 1f
- echo 先输出空格...再逐一替换...........
- set a=set /p=■^<nul^&ping/n 1 127.1 ^>nul^&
- echo.
- echo 程序正在初始化. . .
- echo.
- set/p= <nul&%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
- echo 100%%
- pause>nul
复制代码
我写这个教程是为了让更多初学者少走弯路....欢迎高手们指正问题.............................
菜鸟发贴,欢迎大家发现问题,好及时改正.
[ 本帖最后由 woxingwoshu007 于 2009-4-22 21:35 编辑 ] |