近日开始学习批处理.从网上猎得程序一枚,本不胜心喜.奈何人在山中,望站中老马引领迷途.
此程序指在修改文本文件的内容.输入需要替换的文字内容及被替换成的结果内容,对于其中的SET用法实在是无从琢磨.XP下的帮助没有实例说明,搜索也没有找到.困惑实多.无寻花问柳之心,实求柳暗花明之路.望高手解倒悬之苦.
@echo off
setlocal enabledelayedexpansion
set file=
set /p file= 请输入要操作的文件名称(包括扩展名):
set "file=%file:"=%" ::此行不明白.是否是说将变量file中的字符"替换为空,用意何在.
for %%i in ("%file%") do set file=%%~fi ::SET FILE=%%~FI是什么用法,SET的帮助信息中好像没有
set replaced=
set /p replaced= 请输入即将被替换的内容:
set all=
set /p all= 请输入替换字符串:
for /f "delims=" %%i in ('type "%file%"') do (
set str=%%i
set "str=!str:%replaced%=%all%!" ::此行读不明白,叹号和若干%如何作用
echo !str!>>"%file%"_tmp.txt
)
copy "%file%" "%file%"_bak.txt >nul 2>nul
move "%file%"_tmp.txt "%file%"
start "" "%file%"
Last edited by photonjl on 2010-10-3 at 17:29 ]