2012-09-09 34 views
1

我需要編寫一個批處理腳本,將一個文件夾的文件複製到其他文件夾。用戶將在文件中提供源文件夾和目標文件夾。該文件可能是xml或cinfig或文本文件。該文件具有多個值。創建從源文件讀取多個輸入參數的批處理腳本

例如文本文件可能有

<key="1" source="D:\test\" destination="E:\folderfile\"/> 
<key="2" source="E:\test\" destination="F:\folderfile\"/> 
<key="3" source="C:\test\" destination="D:\folderfile\"/> 
<key="4" source="D:\test\" destination="E:\folderfile\"/> 
<key="5" source="D:\test\" destination="E:\folderfile\"/> 
批處理文件運行時

,它會要求用戶輸入鍵值。假設如果用戶提供了2,4,5個值,則批處理腳本應該從文件中獲取源2的目的地&目標,並複製文件等等,它也應該爲4和5個鍵執行。

請不要建議使用Power-shell腳本或VB腳本,因爲我應該只在批處理腳本中進行操作。 任何幫助,可以讚賞。

感謝
普利文

+2

歡迎來到StackOverflow。你到目前爲止嘗試過哪些方法無效?這不是「爲我做我的任務」網站;你需要證明你自己已經付出了一些努力來解決它。發佈你的努力,我們會盡力幫助你弄清楚他們爲什麼不工作。 –

+0

你好肯,實際上是1天到批處理腳本。我使用copy&xcopy命令複製了文件,但不知道如何從其他源文件獲取多個輸入值。假設用戶提示提供密鑰,根據提供的密鑰,批處理腳本必須從其他文件(txt或xml文件)獲取源和目標路徑。 – Praveen

回答

0

如果你將你的文件格式爲簡單的命令:

copy d:\test\ e:\folderfile\ 
copy e:\test\ f:\folderfile\ 
... 

你可以使用下面的批處理文件:

setlocal enabledelayedexpansion 
for /f "tokens=*" %%a in ('findstr /n . %1^|find "%2:"') do (
set searchtext = "%2:" 
set linetext=%%a 
set commandToCall=!linetext:%2:=! 
) 
call %commandToCall% 

使用:

mybatchfile.bat input.txt <linenumber> 
+0

@Praveen您是否有一個名爲input.txt的輸入文件與批處理腳本位於同一文件夾中? –

+0

嗨Shimoon,謝謝你的回覆。但是你發送的那個沒有工作。獲取像「FINDSTR:無法打開input.txt」這樣的錯誤&在這裏你在代碼中指定行號作爲批處理文件的輸入,但我希望鍵值被指定爲輸入。讓我們說像mybatchfile.bat 2,3,4。這裏2,3,4是文本文件中指定的關鍵值,我想要這些關鍵值的源和destionation – Praveen

+0

Shimoon,input.txt和mybatchfile.bat文件都駐留在同一文件夾中 – Praveen

相關問題