![](/img/trans.png)
[英]Batch file to copy and rename files from multiple subdirectories recursively
[英]Batch file to copy/rename directory recursively and find/replace file contents
需要一个 Windows 批处理文件来复制目录树并将给定的 old_name 的出现重命名为给定的 new_name,请参见下面的示例。 我看着robocopy
和xcopy
无济于事
String old = "old_name";
String new = "new_name";
current directory:
C:\old_name
C:\old_name\table
C:\old_name\garage\old_name\chair\a.file (contains text I am OLD_NAME)
C:\old_name\garage\old_name\b.file (contains text I am old_name)
desired outcome:
C:\new_name
C:\new_name\table
C:\new_name\garage\new_name\chair\a.file (contains text I am NEW_NAME)
C:\new_name\garage\new_name\b.file (contains text I am new_name)
编辑:在路径中显示一个未更改为新名称的节点。
old_name=twintyone
新名称=一
C:\\Users\\fredJ\\AndroidStudioProjects\\one\\app\\src\\main\\java\\mx\\com\\businessman\\twintyone
我不知道有任何一个实用程序可以完成您想要的所有操作,但是如果您部署了我的JREPL.BAT和JREN.BAT实用程序,那么一个简单的批处理脚本就可以轻松高效地实现您的目标。
JREPL.BAT 和 JREN.BAT 都是混合 JScript/批处理脚本,可以在 XP 以后的任何 Windows 机器上本地运行 - 无需复制或安装可执行文件。
批处理脚本有 3 个简单的步骤:
我还添加了一些 ECHO 语句,以便您可以了解进度
注意 - 以下内容未经测试。 如果有错误,应该有一个简单的修复 - 基本设计是合理的
@echo off
set "old=OLD_NAME"
set "new=NEW_NAME"
xcopy "c:\%old%\*" "c:\%new%" /i /s
call jren "^.+" "%new%" /d /s /p "c:\%new%" /fm "%old%"
for /f "delims=" %%F in ('findstr /mspc:"%old%" "c:\%new%\*"') do (
echo Editing "%%F"
call jrepl "%old%" "%new" /l /f "%%F" /o -
)
echo(
echo Done!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.