[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 lt5 于 2012-4-11 05:10 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set "f=d_q 973-c_j 314+y_d 356+i_p 638-u_m 204+w_a 588+j_c 829-p_t 599+j_v 803-p_y 92-r_h 677+h_i 341+h_q 705-r_f 601-m_s 822+q_q17-w_y 720+s_d 325-d_n 559-l_s 109+l_v 160-x_b 232-u_r 282-v_l 521+p_o 403-x_n 613+t_x 185-g_v678+z_n 753+j_k 779-o_f 283-h_w 390-z_o 772-w_v 252-a_e 51-m_t 945-k_q 444-r_m 233-p_w 744+k_k 136-w_k 131-s_o 163+k_i 733+w_c 733+g_l 42+o_i 515+x_h 130-n_b 200+i_u 25+z_i 730"
  3. set str=%f:+=-%
  4. set i=^
  5. for %%a in ("!i!") do (
  6.    for /f "delims=" %%b in ("!str:-=%%~a!") do echo %%b
  7. )
  8. pause>nul
复制代码
上面的代码看似复杂,其实思路很简单,就是把分隔符替换成换行符,就像word一样。只用set的话无法把所有结果输入到文本文件,因为set默认是只取最后一行。
还有下面的虽然用了很多set,但为了能输入到文本里不得不用for循环,有没有不用for循环也能把结果输入到文本呢?
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=d_q 973-c_j 314+y_d 356+i_p 638-u_m 204+w_a 588+j_c 829-p_t 599+j_v 803-p_y 92-r_h 677+h_i 341+h_q 705-r_f 601-m_s 822+q_q17-w_y 720+s_d 325-d_n 559-l_s 109+l_v 160-x_b 232-u_r 282-v_l 521+p_o 403-x_n 613+t_x 185-g_v678+z_n 753+j_k 779-o_f 283-h_w 390-z_o 772-w_v 252-a_e 51-m_t 945-k_q 444-r_m 233-p_w 744+k_k 136-w_k 131-s_o 163+k_i 733+w_c 733+g_l 42+o_i 515+x_h 130-n_b 200+i_u 25+z_i 730"
  3. set str=%str: =#%
  4. set str=%str:+= %
  5. set str=%str:-=;%
  6. for %%i in (%str%) do (set a=%%i
  7. echo !a:#= !)
  8. pause>nul
复制代码

TOP

本帖最后由 lt5 于 2012-4-12 12:26 编辑
  1. @echo off
  2. set "f=d_q 973-c_j 314+y_d 356+i_p 638-u_m 204+w_a 588+j_c 829-p_t 599+j_v 803-p_y 92-r_h 677+h_i 341+h_q 705-r_f 601-m_s 822+q_q17-w_y 720+s_d 325-d_n 559-l_s 109+l_v 160-x_b 232-u_r 282-v_l 521+p_o 403-x_n 613+t_x 185-g_v678+z_n 753+j_k 779-o_f 283-h_w 390-z_o 772-w_v 252-a_e 51-m_t 945-k_q 444-r_m 233-p_w 744+k_k 136-w_k 131-s_o 163+k_i 733+w_c 733+g_l 42+o_i 515+x_h 130-n_b 200+i_u 25+z_i 730"
  3. set f=+%f:-=+%
  4. set f=%f:+=>>test.x &echo %
  5. type test.x
  6. pause
复制代码
感觉还是batman的方法通用一些,后来的方法都是找到了这段文字的规律而已,所以代码显得很简洁。若是遇到其他文字这个方法可能就没用了

TOP

返回列表