标题: [文本处理] 【已解决】求BAT脚本批量修改子目录内的文件内容 [打印本页]
作者: zxar520 时间: 2022-9-6 12:11 标题: 【已解决】求BAT脚本批量修改子目录内的文件内容
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相对应。
请大佬帮忙写一个,非常非常感谢!!!!
作者: flashercs 时间: 2022-9-6 13:30
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%A in (name.txt) do (
- md "home\wwwroot\%%~A" 2>nul
- xcopy "home\aaaa_cc\*" "home\wwwroot\%%~A" /e /f /y
- powershell -c "[io.file]::WriteAllText('home\wwwroot\%%~A\js\.user.ini',[io.file]::ReadAllText('home\wwwroot\%%~A\js\.user.ini').Replace('/aaa_cc/','/%%~A/'))"
- )
- pause
复制代码
作者: zxar520 时间: 2022-9-6 14:11
本帖最后由 zxar520 于 2022-9-6 14:21 编辑
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%A in (name.txt) do (
- md "wwwroot\%%~A" 2>nul
- xcopy "aaaa_cc\*" "wwwroot\%%~A" /e /f /y
- powershell -c "[io.file]::WriteAllText('home/wwwroot/%%~A/js/.user.ini',[io.file]::ReadAllText('home/wwwroot/%%~A/js/.user.ini').Replace('/aaa_cc/','/%%~A/'))"
- )
- pause
复制代码
大佬,我修改了下,现在可以复制了,但是不能修改文件内容,提示以下错误- 使用“1”个参数调用“ReadAllText”时发生异常:“未能找到路径“D:\Desktop\home\ho
- me\wwwroot\abc1_cc\js\.user.ini”的一部分。”
- 所在位置 行:1 字符: 85
- + [io.file]::WriteAllText('home/wwwroot/abc1_cc/js/.user.ini',[io.file]::Read
- AllText <<<< ('home/wwwroot/abc1_cc/js/.user.ini').Replace('/aaa_cc/','/abc1_cc/'))
- + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
- + FullyQualifiedErrorId : DotNetMethodException
复制代码
作者: zxar520 时间: 2022-9-6 14:32
本帖最后由 zxar520 于 2022-9-6 14:50 编辑
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%A in (name.txt) do (
- md "wwwroot\%%~A" 2>nul
- xcopy "aaaa_cc\*" "wwwroot\%%~A" /e /f /y
- powershell -c "[io.file]::WriteAllText('wwwroot/%%~A/js/.user.ini',[io.file]::ReadAllText('wwwroot/%%~A/js/.user.ini').Replace('/aaa_cc/','/%%~A/'))"
- )
- pause
复制代码
修正后正常使用的代码!感谢大佬!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |