求大神,在当前目录下遍历文件夹,每有一个文件夹执行一次abc.json的复制的批处理
要求针对每一次复制,abc.json的文件名和文档内部字符串"abc"都要替换为文件夹的名字。如对文件夹a123,复制出a123.json,并且json文档内部所有字符串...
要求针对每一次复制,abc.json的文件名和文档内部字符串"abc"都要替换为文件夹的名字。如对文件夹a123,复制出a123.json,并且json文档内部所有字符串"abc"替换为"a123"
展开
2个回答
展开全部
这个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进行复制,而复制的文件添加“-副本”字样。
@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字符串
追答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | @ 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 |
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 | @ 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前面只有前四个字符随文件名前四个字符变换。
本回答被提问者采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询