2014-09-03 70 views
0

所以繼承人我正在努力做的。我正在變量從他們這個樣子批處理文件。來自文件不可用的可變輸入

000001 server1 server2 
000002 server2 server1 

一個文本文件中的第1組的代碼,我寫會執行,但只有文本文件的最後一行

Set _InputFile=c:\usermovelist.txt 
For /F "tokens=1-3* delims= " %%A IN (%_InputFile%) DO ( 
Set _var1=%%A 
Set _var2=%%B 
Set _var3=%%C 
) 
xcopy \\%_var2%\e$\profiles\%_var1%.V2 \\%_var3%\e$\profiles\%_var1%.V2 /m /e /y /O /h 
xcopy \\%_var2%\e$\users\%_var1% \\%_var3%\e$\users\%_var1% /m /e /y /O /h 
pause 
ren \\%_var2%\e$\profiles\%_var1%.V2 %_var1%.old.V2.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 
ren \\%_var2%\e$\users\%_var1% %_var1%.old.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 

所以後來我想這

Set _InputFile=c:\usermovelist.txt 

For /f "tokens=* delims= " %%f in (%_InputFile%) do (
set line=%%f 
call :processToken 
) 


:processToken 

For /F "tokens=1-3* delims= " %%A IN (%line%) DO ( 
Set _var1=%%A 
Set _var2=%%B 
Set _var3=%%C 
) 

xcopy \\%_var2%\e$\profiles\%_var1%.V2 \\%_var3%\e$\profiles\%_var1%.V2 /m /e /y /O /h 
xcopy \\%_var2%\e$\users\%_var1% \\%_var3%\e$\users\%_var1% /m /e /y /O /h 
pause 
ren \\%_var2%\e$\profiles\%_var1%.V2 %_var1%.old.V2.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 
ren \\%_var2%\e$\users\%_var1% %_var1%.old.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 

但這並不讀取變量入XCOPY的一部分但它逐行閱讀,我也需要它來做。我可以打任何鍵,它的每一行

C:\Users\xxxxx\Desktop>For /F "tokens=1-3* delims= " %A IN (000002 server2 server1) DO (
Set _var1=%A 
Set _var2=%B 
Set _var3=%C 

我新的提前下移至此十分感謝您的幫助!對不起,長職位,我加粗的好東西

回答

0

刪除不需要的變量

Set "_InputFile=c:\usermovelist.txt" 
For /F "usebackq tokens=1-3* delims= " %%A IN ("%_InputFile%") DO ( 
    xcopy \\%%B\e$\profiles\%%A.V2 \\%%C\e$\profiles\%%A.V2 /m /e /y /O /h 
    xcopy \\%%B\e$\users\%%A \\%%C\e$\users\%%A /m /e /y /O /h 
    pause 
    ren \\%%B\e$\profiles\%%A.V2 %%A.old.V2.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 
    ren \\%%B\e$\users\%%A %%A.old.%int%.%date:~-10,2%.%date:~-7,2%.%date:~-4,4% 
) 
+0

這對我很好。謝謝你的幫助! – 2014-09-03 15:01:53

相關問題