file - 在指定的文件中,修改文件内容的脚本

  显示原文与译文双语对照的内容
120 0

我尝试搜索以前的问题但没有工作,或者我无法适应我的需要

我想编写一个脚本,要求:

  • 文件夹
  • 标准
  • 旧字符串
  • 新建字符串

在指定的文件夹和子文件夹 ( 并强制用户键入) 中,将每个file的替换为特定的criteria cue cue cue cue

  1. 如果文件是"只读",则禁用它
  2. 的文件内容中搜索指定的字符串,并将它的替换为字符串,并在同一文件中保存更改
  3. 如果文件是"只读",请再次启用它

我有这个进步,但我不知道在"做"部分中做什么:


@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

时间: 原作者:

52 0

下面的批处理文件执行你想要的操作,它需要我的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" !

原作者:
...