2013-10-10 99 views
-1

好吧,在一個文檔添加文本到一定行的,我需要的文本行添加到某行的json文件使用批處理

例子:

"Forge": { 
     "name": "Forge", 
     "lastVersionId": "1.6.4-Forge9.11.1.916" 
     }, 

進入一個現有json文件在某一行 可能嗎?

+0

嘿!爲什麼所有的評論都沒有評論?這是一個合理的問題。 – nephi12

+0

@ user2867397如何確定「確定」行?按數字?字符串搜索?你有嘗試過什麼嗎?問題是什麼? –

+0

按行號。 – user2867397

回答

0
@echo on&setlocal enabledelayedexpansion 
set NLM=^ 



set NL=^^^%NLM%%NLM%^%NLM%%NLM% 

set a= 
set b=0 
for /f "delims==" %%i in (file.txt) do (
    set /a b+=1 
    set a=!a!%%i!nl! 
    if "!b!" EQU "2" (set a=!a!"Forge": {!nl!  "name": "Forge",!nl!   "lastVersionId": "1.6.4-Forge9.11.1.916"!nl!  },!nl!) 
) 
(echo %a%)>>newfile.txt 

線後插入,看到編輯歷史;)

+0

是啊,本來是說行數感謝回覆! – user2867397

+0

如果這對你有幫助,請標記爲正確答案。 ; p – nephi12

+0

唯一的問題是,它把全部輸出放在第一行 – user2867397

0

是的,你可以。嘗試使用unix命令「sed」。 在你的情況下使用下面的腳本將插入它在第5行:

sed -i '5i "Forge": { "name": "Forge", "lastVersionId": "1.6.4-Forge9.11.1.916" }' Json.file 
+1

批處理文件是一個窗口的東西。 – nephi12

+0

sed適用於Windows,只需將單引號改爲雙引號。 – Endoro

+0

我不認爲OP在他不需要的時候想安裝一個新程序來做這件事。 – nephi12

0

使用正確的JSON解析器添加foobar用於鍵lastVersionId的值:

use strict; use warnings; 
use JSON; 
my $json = <<EOF; 
{ 
    "Forge": { 
     "name": "Forge", 
     "lastVersionId": "1.6.4-Forge9.11.1.916" 
     } 
} 
EOF 
my $perl_DS = decode_json $json; 
$perl_DS->{Forge}->{lastVersionId} .= " foobar"; 
print encode_json $perl_DS; 

輸出:

$ perl script.pl | json_pp 
{ 
    "Forge" : { 
     "name" : "Forge", 
     "lastVersionId" : "1.6.4-Forge9.11.1.916 foobar" 
    } 
}