找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18317|回复: 3

[文本处理] 【已解决】求BAT脚本批量修改子目录内的文件内容

[复制链接]
发表于 2022-9-6 12:11:17 | 显示全部楼层 |阅读模式
name.txt内容:
abc1_cc
abc2_cc
abc3_cc
abc4_cc
... ... ...等多行名称


原目录:
home/aaaa_cc/【aaaa_cc目录里面有多个子目录和文件】



最终目录结构:
home/wwwroot/abc1_cc/js/.user.ini
            /abc2_cc/js/.user.ini
            /abc3_cc/js/.user.ini
            /abc4_cc/js/.user.ini
             ... ... ...

                       等几十个目录

.user.ini文本内容:open_basedir=/home/wwwroot/aaa_cc/js:/tmp/:/proc/



需求:根据txt【name.txt】的内容,先复制aaaa_cc目录及子目录到wwwroot目录下并重命名为abc1_cc、abc2_cc、abc3_cc...等
      然后再批量修改.user.ini内容【aaa_cc】跟目录abc1_cc、abc2_cc、abc3_cc相对应。



      请大佬帮忙写一个,非常非常感谢!!!!
发表于 2022-9-6 13:30:17 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%A in (name.txt) do (
  4.   md "home\wwwroot\%%~A" 2>nul
  5.   xcopy "home\aaaa_cc\*" "home\wwwroot\%%~A" /e /f /y
  6.   powershell -c "[io.file]::WriteAllText('home\wwwroot\%%~A\js\.user.ini',[io.file]::ReadAllText('home\wwwroot\%%~A\js\.user.ini').Replace('/aaa_cc/','/%%~A/'))"
  7. )
  8. pause
复制代码
 楼主| 发表于 2022-9-6 14:11:14 | 显示全部楼层
本帖最后由 zxar520 于 2022-9-6 14:21 编辑
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%A in (name.txt) do (
  4.   md "wwwroot\%%~A" 2>nul
  5.   xcopy "aaaa_cc\*" "wwwroot\%%~A" /e /f /y
  6.   powershell -c "[io.file]::WriteAllText('home/wwwroot/%%~A/js/.user.ini',[io.file]::ReadAllText('home/wwwroot/%%~A/js/.user.ini').Replace('/aaa_cc/','/%%~A/'))"
  7. )
  8. pause
复制代码
大佬,我修改了下,现在可以复制了,但是不能修改文件内容,提示以下错误
  1. 使用“1”个参数调用“ReadAllText”时发生异常:“未能找到路径“D:\Desktop\home\ho
  2. me\wwwroot\abc1_cc\js\.user.ini”的一部分。”
  3. 所在位置 行:1 字符: 85
  4. + [io.file]::WriteAllText('home/wwwroot/abc1_cc/js/.user.ini',[io.file]::Read
  5. AllText <<<< ('home/wwwroot/abc1_cc/js/.user.ini').Replace('/aaa_cc/','/abc1_cc/'))
  6.     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  7.     + FullyQualifiedErrorId : DotNetMethodException
复制代码
 楼主| 发表于 2022-9-6 14:32:29 | 显示全部楼层
本帖最后由 zxar520 于 2022-9-6 14:50 编辑
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%A in (name.txt) do (
  4.   md "wwwroot\%%~A" 2>nul
  5.   xcopy "aaaa_cc\*" "wwwroot\%%~A" /e /f /y
  6.   powershell -c "[io.file]::WriteAllText('wwwroot/%%~A/js/.user.ini',[io.file]::ReadAllText('wwwroot/%%~A/js/.user.ini').Replace('/aaa_cc/','/%%~A/'))"
  7. )
  8. pause
复制代码
修正后正常使用的代码!感谢大佬!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:51 , Processed in 0.016888 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表