2015-11-17 64 views
0

我正在通過batchscript讀取配置json文件並動態創建變量。 JSON文件的使用批處理腳本從json文件讀取URL

內容如下

{ 
"ApplicationId":"c2b925c2-e5c9-4534-b855-43534", 
"ApplicationProcess":"453453-ca1c-4735-806a-45345", 
"VersionComponentId":"4533-35d2-4f0c-bb7a-rtert", 
"uDClientFolder":"/udclient/", 
"FID":"myId", 
"FAuthToken":"mypassword", 
"uDeployUrl":"https://myurl:8445", 
"outPutDir":"..\Binaries\_PublishedWebsites\OutPut", 
} 

批處理腳本是給讀變量我面臨兩個問題如下

for /f "tokens=1,2 delims=:, " %%a in (' find ":" ^< ".\%jsonConfigFile%" ') do (


    set a=%%~a: =% 
    set b=%%~b: =% 
    set "%%~a=%%~b" 
) 

這裏給出。 1.無法讀取uDeployUrl,因爲它包含://。我只獲得了網址的https部分。 2.如果我的json在「應用程序」:「值」 之前的密鑰名稱之前包含空格,那麼變量名稱也將包含其名稱中的空格。那麼如何從變量名稱中刪除起始空間

在此先感謝。

回答

-1
for /f "tokens=1* delims=:" %%a in ('find ":" "%jsonConfigFile%"') do set "%%~a=%%~b 
  • 使用tokens=1*得到:後,一切都變成%%b
  • 使用~前綴剝去%%a周圍的報價和%%b
  • 開引號由於%%b最後一個引號之後,它不會被刪除,但我們可以簡單地將整個set賦值放在雙引號中,前綴爲一個雙引號,這樣最終的賦值就會l例如set "uDeployUrl=https://myurl:8445", - 最後的逗號將被忽略。
  • find的第二個參數是一個文件名,所以沒有必要通過<
使用輸入重定向
相關問題