本帖最后由 lt5 于 2012-4-11 05:10 编辑
- @echo off&setlocal enabledelayedexpansion
- 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"
- set str=%f:+=-%
- set i=^
-
-
- for %%a in ("!i!") do (
- for /f "delims=" %%b in ("!str:-=%%~a!") do echo %%b
- )
- pause>nul
复制代码 上面的代码看似复杂,其实思路很简单,就是把分隔符替换成换行符,就像word一样。只用set的话无法把所有结果输入到文本文件,因为set默认是只取最后一行。
还有下面的虽然用了很多set,但为了能输入到文本里不得不用for循环,有没有不用for循环也能把结果输入到文本呢?- @echo off&setlocal enabledelayedexpansion
- 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"
-
- set str=%str: =#%
- set str=%str:+= %
- set str=%str:-=;%
- for %%i in (%str%) do (set a=%%i
- echo !a:#= !)
- pause>nul
复制代码
|