标题: 初学者问关于字符串变量处理的问题
[打印本页]
作者: soli
时间: 2007-9-3 23:35
标题: 初学者问关于字符串变量处理的问题
批处理脚本实现的功能很简单,但对于初学者的我似乎很费周折,请高手赐教,谢谢。
rem 把当前路径下的所有.txt文件的文件名加入变量FILELIST并以分号隔开
setlocal EnableDelayedExpansion
set FILELIST=
for %%I in (*) do (
set FILENAME=%%I
if !FILENAME:~-4%! == ".txt" (
set FILELIST=%%I;!FILELIST!
)
)
rem 下面把变量输出到文件,以便检查结果正确与否
echo %FILELIST% >>a.txt
endlocal
注意:这是批处理文件中的脚本,而不是在CMD下。
[
Last edited by soli on 2007-9-3 at 11:49 PM ]
作者: soli
时间: 2007-9-3 23:49
似乎不是字符串处理的问题,而是if语句的问题。
setlocal EnableDelayedExpansion
set FILELIST=
for %%I in (*) do (
set FILENAME=%%I
rem 这里打印出的内容是.txt的时候,仍不能进入下面的if语句
echo !FILENAME:~-4%!
if !FILENAME:~-4%! == ".txt" (
set FILELIST=%%I;!FILELIST!
)
)
echo %FILELIST% >>a.txt
endlocal
[
Last edited by soli on 2007-9-3 at 11:51 PM ]
作者: soli
时间: 2007-9-4 01:19
已解决
setlocal EnableDelayedExpansion
set FILELIST=
for %%I in (*) do (
set FILENAME=%%I
rem 这里前面的变量必须加双引号
if /I
“!FILENAME:~4%!
” == ".txt" (
set FILELIST=%%I;!FILELIST!
) else (
echo Not a txt file.
)
)
echo %FILELIST% >>a.txt
endlocal
[
Last edited by soli on 2007-9-4 at 01:21 AM ]
作者: ThinKing
时间: 2007-9-4 17:57
3楼红色引号貌似也不成,因为是中文的。
另一种方法:
for %%a in (*.txt) do @set/p=%%a;<nul>>newfile.txt