File 用于修改指定文件中的文件内容的脚本
我试着搜索以前的问题,但没有一个有效,或者我无法使它们适应我的需要 我想写一个脚本,要求: 文件夹 标准 旧弦 新字符串 并替换指定文件夹和子文件夹中的每个文件,并强制用户键入具有特定条件的文件,例如,它必须是.cue文件,并且: 如果文件为只读,请禁用它 在文件内容中搜索指定的旧字符串,并将其替换为新字符串,然后将更改保存在同一文件中 如果文件为只读,请再次启用它 我有这个进展,但我不知道在do部分要做什么:File 用于修改指定文件中的文件内容的脚本,file,batch-file,replace,directory,File,Batch File,Replace,Directory,我试着搜索以前的问题,但没有一个有效,或者我无法使它们适应我的需要 我想写一个脚本,要求: 文件夹 标准 旧弦 新字符串 并替换指定文件夹和子文件夹中的每个文件,并强制用户键入具有特定条件的文件,例如,它必须是.cue文件,并且: 如果文件为只读,请禁用它 在文件内容中搜索指定的旧字符串,并将其替换为新字符串,然后将更改保存在同一文件中 如果文件为只读,请再次启用它 我有这个进展,但我不知道在do部分要做什么: @echo off setLocal enableDELAYedexpansio
@echo off
setLocal enableDELAYedexpansion
:START
set "var2="
set /P var2="type folder "
if "%var2%"=="" goto ERROR
set /p old="old string ? "
set /p new="new string ? "
set /p files="what criteria ? "
echo modifying files...
for /r "%var2%" %%v in (%%files) do (
???
)
pause
goto START
:ERROR
echo type something!!
goto START
下面的批处理文件满足您的要求,它需要我的FindRepl.bat文件,您必须从该文件进行复制
必须注意,旧字符串是FindRepl.bat文档中描述的正则表达式,因此必须使用反斜杠转义任何句点。例如,必须输入\.wav才能搜索.wav字符串 举个例子就好了。你真的需要恢复只读属性吗?例如,我需要它来替换文件夹中每个.cue文件中的.wav for.flac字符串。也许有些.cue文件是只读的
@echo off
setLocal EnableDelayedExpansion
:START
set "var2="
set /P var2="type folder "
if "%var2%" == "" goto ERROR
set /p old="old string ? "
set /p new="new string ? "
set /p files="what criteria ? "
echo modifying files...
for /r "%var2%" %%v in (*%files%) do (
for /F "delims=" %%a in ('attrib "%%v"') do (
set "attrib=%%a"
set "attrib=!attrib:~0,10!"
if "!attrib:R=!" neq "!attrib!" (
attrib -R "%%v"
set attrib=+R
) else (
set attrib=-R
)
)
call FindRepl "%old%" "%new%" < "%%v" > "%%v.tmp"
move /Y "%%v.tmp" "%%v"
attrib !attrib! "%%v"
)
pause
goto START
:ERROR
echo type something!!
goto START