我尝试搜索以前的问题,但没有工作,或者我无法根据我的需要调整它们
我想写一个要求的脚本:
并使用特定的条件替换指定文件夹和子文件夹中的每个文件(并强制用户键入一个)(例如,必须是“.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 (
???
)
pause
goto START
:ERROR
echo type something!!
goto START
答案 0 :(得分:0)
下面的批处理文件可以执行您想要的操作,它需要我必须从this site
复制的FindRepl.bat文件@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
您必须注意“旧”字符串是FindRepl.bat文档中描述的“正则表达式”,因此您必须使用反斜杠转义任何句点。例如,您必须输入“\ .wav”才能搜索“.wav”字符串!