請看下圖,我想用批次檔將某個資料夾底下所有檔案中,有下列反白文字的部分都刪掉
要怎麼寫才好呢
因為裡面還包含了換行符號跟雙引號,感覺有點難,請各位大大幫幫忙,謝謝~~
在 JSON 檔案進行含換行字元的字串取代, 要用純 .bat
來搞太硬了。
( 是有「把換行字元臨時換成自訂識別字串,搜尋、取代完整個字串後,再把自訂識別字串換回換行字元」類似這種彆扭的各樣方法, 但真心不推薦給不熟 batch-script 的人, 會被 cmd.exe
的特性各種花式搞死…… )
若你的 Windows 有 Windows PowerShell (你的系統環境應該沒惡劣到連這都沒有吧?) , 給個 .ps1
腳本檔案給你參考:
## This is a '.ps1' file;
## Tested @[Windows-PowerShell-v5.1];
$myOldStr = @'
,
"HK_BTWN_FLT": [],
"LL_CATCHES": []
'@
$myNewStr = ''
$mySrcFilePath = '.\aDemo.json'
$myDstFilePath = $mySrcFilePath ## 這是故意留的, 介意的話請自改~
(Get-Content $mySrcFilePath -Raw).Replace($myOldStr, $myNewStr) | Set-Content $myDstFilePath -Encoding UTF8
##
其他參考:
另, 你也可以用, 在 .bat
內呼叫 powershell.exe
執行 .ps1
這種有點繞的方式:
( -ExecutionPolicy RemoteSigned
這參數是最近看到有人有執行權限問題而加的; 你也可以不加上這參數來試試環境。 )
rem ## This is a batch-file;
powershell.exe -ExecutionPolicy RemoteSigned -Command '.\myScript.ps1'
請善用 程式碼與語法高亮標記 - iT邦幫忙 的 Markdown ;
不然, 至少, 編輯區工具列, 有個 新增程式碼 (Ctrl-Alt-C)
能用。
( 程式碼區塊
亦可用以存放各種文字資料, 以方便他人閱覽。 )
iThelp-Markdown 的語法高亮之自動識別時常錯判, 建議用下面方式 (json
) 指定語言:
```json
{
"msg": "nope"
}
```