求大神,在当前目录下遍历文件夹,每有一个文件夹执行一次abc.json的复制的批处理

要求针对每一次复制,abc.json的文件名和文档内部字符串"abc"都要替换为文件夹的名字。如对文件夹a123,复制出a123.json,并且json文档内部所有字符串... 要求针对每一次复制,abc.json的文件名和文档内部字符串"abc"都要替换为文件夹的名字。如对文件夹a123,复制出a123.json,并且json文档内部所有字符串"abc"替换为"a123" 展开
 我来答
依梦琴瑶
高粉答主

2019-04-07 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
这个abc.json在每一个文件夹中吗?那么复制一次后的文件名怎么命名?

以下代码以每个文件夹中存在的abc.json进行复制,而复制的文件添加“-副本”字样。

@echo off & title 拷贝一次abc.json By 依梦琴瑶

for /r /d %%a in (*) do copy "%%~a\abc.json" "%%~a\abc-副本.json"
pause
call :Donate
exit

:Donate
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
追问

可能我没描述明白,这个abc.json初始只有一个,在当前目录下和子文件夹平级,副本以子文件夹id命名,而且所有新的json放在当前目录下,不是子文件夹里


同时json文档内部所有'abc'字符串更换为相应文件夹id字符串



追答
@echo off & title 根据文件夹拷贝JSON文件 By 依梦琴瑶
cd /d "%~dp0"

copy /y abc.json #json#.tmp>nul
for /d %%a in (*) do (
    (for /f "usebackq delims=" %%b in (#json#.tmp) do (
        call :ReplaceCreate "%%~b" "%%~a"
    ))>"%%~a.json"
)
del /f /q #json#.tmp
pause
call :ToMe
exit
 
:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit

:ReplaceCreate
set "Str=%~1"
set "New=%~2"
call set Str=%%Str:abc_=%New%_%%
call echo %%Str:abc=%New%%%
goto :eof
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qop_dob
2019-04-08 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3971万
展开全部
@echo off
set #=q&set/ax=0x53b7e0b4
title Any question +%#%%#% %x%
cd /d "%~dp0"
set "文件=abc.json"
powershell ^
    $text=[IO.File]::ReadAllText('%文件%', [Text.Encoding]::Default);^
    dir^|?{$_ -is [System.IO.DirectoryInfo]}^|%%{^
        write-host $_.Name;^
        out-file -file ($_.Name+'.json') -input $text.replace('abc',$_.Name) -enc Default;^
    }
echo;Any question +%#%%#% %x%
pause
追问

如果json文件内部存在特定字符串(如***.mp3)只有前4个字符随文件夹名前四个字符变换,该如何替换?如下图.jpg前面字符串和文件名一致,但.mp3前面只有前四个字符随文件名前四个字符变换。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式