2017-08-08 73 views
0

我試圖創建批處理腳本,它可以接受用戶的多個輸入&然後創建文件&將所有輸入保存在該文件中。下面是我創建的代碼,但它沒有工作。你能幫我麼。在windows批處理腳本中使用FOR LOOP創建多個文件

@echo off 
set /P inst=Enter number of installation:  
set /A ha_inst=%inst%  
FOR /L %%i IN (1,1,%ha_inst%) DO (  
    set /P hostname= Enter host name: 
    set /P sid=Enter SID:  
    echo. >C:\Users\smnadm\Desktop\hdbinst.cfg_%%i 
    ( 
     echo # Local Host Name  
     echo hostname=%hostname%  
     echo # SAP HANA System ID  
     echo sid=%sid%  
    ) >C:\Users\smnadm\Desktop\%hdbinst.cfg_%%i% 
)  

感謝

+2

您面臨的錯誤或問題是什麼? –

+1

告訴我們「這行不通」並不能幫助我們幫助您排除故障。您需要解釋_how_失敗,包括任何錯誤消息的確切文本。你還應該解釋你採取了哪些步驟來自己分析錯誤,以及你的發現是什麼。 –

+0

@BilalFarooqAhmad - 他的主要錯誤是他正在使用SAP產品。 – npocmaka

回答

0

在代碼最後一行你寫到文件

C:\Users\smnadm\Desktop\%hdbinst.cfg_%%i% 

然而變量%hdbinst.cfg_%從來沒有在你的代碼中設置。您可能需要使用hdbinst.cfg _ %% i

下面的代碼工作對我來說:但是\ TEMP:

@echo off 
setlocal ENABLEDELAYEDEXPANSION 
set /P inst=Enter number of installation:  
set /A ha_inst=%inst%  
FOR /L %%i IN (1,1,%ha_inst%) DO (  
    set /P hostname=Enter host name: 
    set /P sid=Enter SID:  
    echo. >C:\temp\hdbinst.cfg_%%i 
    echo # Local Host Name  >>C:\temp\hdbinst.cfg_%%i 
    echo hostname=!hostname! >>C:\temp\hdbinst.cfg_%%i 
    echo # SAP HANA System ID >>C:\temp\hdbinst.cfg_%%i 
    echo sid=!sid!    >>C:\temp\hdbinst.cfg_%%i 

) 

寫在目錄C。

+0

謝謝您的回覆。我也在下面使用了兩個syntex,但它不起作用。 >%C:\ Users \ smnadm \ Desktop \ hdbinst.cfg _ %% i% > C:\ Users \ smnadm \ Desktop \%hdbinst.cfg _ %% i – hans

+0

我在我的答案中添加了一個工作示例。您必須相應地更改路徑。 –

+0

它也適用於我。您能否讓我知道兩個syntex !主機名下的差異是多少?或%主機名% 應該用來從用戶讀取輸入值 – hans

相關問題