2014-02-17 68 views
0

我一直在努力工作這1它是一個相當簡單的批處理,但我幾乎失去了,搜索得到了我的親密,但似乎沒有工作,所以我希望有人可以幫助這個。從文件填充批處理

我有一個批處理文件,它遠沒有優化,但基本上我現在要做的是使用我已經在批處理中運行的ping,然後寫入check.csv,然後在開始時填充單個IP (希望是有道理的)。

在果殼

開頭的變量應該從check.csv

這裏填充的是代碼

'@echo off 
rem set the individual IP addresses 

Rem these are manually set at present, I want these set automatically from check.csv which is created at the end of this file at present but will be moved infront.. 
set sarah=10.1.14.106 
set richard=10.1.15.135 
set kathh=10.1.12.79 

編輯了其中的一些,以減少屏幕上的代碼,你,但它們都是相同的格式,名稱& IP

rem set the individual profile name 
set n1=sharman 
set n2=rburrell 

去除更多的相同(只是複製上面的代碼爲不同的用戶)

rem set the computer name 
set sarahPC=PB7B237  
set richardPC=PB1VAL9 

除去以上相同

REM set the main install paths 
set M3="C:\Users\dclare\Documents\VW Compiler\Installers\M3.exe" 
set H3="C:\Users\dclare\Documents\VW Compiler\Installers\H3.exe" 
set MooresInst="C:\Users\dclare\Documents\VW Compiler\Catalogues\PD PS\Catalogue" 
Rem menu 
@echo off 
cls 
:start 
echo. 
echo 1 Ping 
echo 2 List  
echo 3 DBase Installers 
echo 4 EXE Installers 
echo 5 End   
echo. 
@CHOICE /C:12345 

if errorlevel 5 goto End 
if errorlevel 4 goto EXEInstallers 
if errorlevel 3 goto DBase 
if errorlevel 2 goto List 
if errorlevel 1 goto Ping 
goto End 

:End 
Pause 
Exit 


:EXEInstallers 
echo EXE Installers 
echo. 
echo Upload folder 
Xcopy %M3% "S:\# All Public\Information Technology\CAD\VWorlds" /s /y /q 
Xcopy %H3% "S:\# All Public\Information Technology\CAD\VWorlds" /s /y /q 
echo. 
echo %sarah% 
Xcopy %M3% "\\%sarah%\c$\Users\%n1%\Desktop\" /s /y /q 
Xcopy %H3% "\\%sarah%\c$\Users\%n1%\Desktop\" /s /y /q 
echo. 
echo %richard% 
Xcopy %M3% "\\%richard%\c$\Users\%n2%\Desktop\" /s /y /q 
Xcopy %H3% "\\%richard%\c$\Users\%n2%\Desktop\" /s /y /q 
echo. 

除去更多的相同(只是重複上面的代碼對於不同的用戶)的

goto Start 

:DBase 
echo Database Installers 
echo. 
echo %sarah% 
Xcopy %MooresInst% "\\%sarah%\c$\Virtual Worlds\Catalogue" /s /y /q 
echo. 
echo %richard% 
Xcopy %MooresInst% "\\%richard%\c$\Virtual Worlds\Catalogue" /s /y /q 
echo. 

移除更多的相同(只是爲不同用戶複製上述代碼)

echo 
Goto Start 

:List 
echo. 
echo This is a list of the IP's used currently, check against any that fail. 
echo. 
echo Name  Puter  IP 
echo sarah  %sarahPC%%sarah% 
echo richard  %richardPC% %richard% 
echo kathh  %kathhPC%  %kathh% 
echo amarie  %amariePC%  %amarie% 

除去更多的相同(只是重複上面的代碼對於不同的用戶)

echo. 
Pause 
Goto Start 

:Ping 
@echo off 
if exist "C:\Users\dclare\Documents\VW Compiler\Copy to Desktop\Results.csv" Del /s /q "C:\Users\dclare\Documents\VW Compiler\Copy to Desktop\Results.csv" 
Echo Pinging list... 

set ComputerList=list.txt 
pause 
Echo Computername,IP Address>Final.csv 
setlocal enabledelayedexpansion 

for /f "usebackq tokens=*" %%A in ("%ComputerList%") do (
for /f "tokens=3" %%B in ('ping -n 1 -l 1 %%A ^|findstr Reply ^|^| echo Not found Failed:') do (
set IPadd=%%B 
echo %%A,!IPadd:~0, -1!>>Check.csv 
)) 

pause 
Goto Start' 

這裏是check.csv文件內容

PB1VAL9 10.1.15.135 
PB7B218 Failed 
PB1VAL8 10.1.15.111 
PB7B210 10.1.5.253 

除去更多的相同(只是重複上述的針對不同的用戶代碼)

+2

如果您可以製作一個更小的測試示例來說明問題,那麼需要的不是所有的批次代碼才能重現問題,這會有所幫助。 – miltonb

+0

完成,希望你的意思是 – user3319733

回答

0

試試這個程序後,再設定你的變量爲IP地址:

echo off 
for /f "usebackq tokens=1,2" %%a in ("check.csv") (
    echo setting %%a=%%b 
    set "%%a=%%b" 
) 

通過此ping程序,它將顯示它是聯機還是脫機。我不得不猜測你想要做什麼,因爲我們沒有你的文件來測試它。

如果您想在其中填入一組包含IP地址的變量,請給我們一個Check.csv的樣本。

:Ping 
@echo off 
Del /s /q "C:\Users\dclare\Documents\VW Compiler\Copy to Desktop\Results.csv" 2>nul 
Echo Pinging list... 

set "ComputerList=list.txt" 
pause 
Echo Computername,IP Address>Final.csv 

for /f "usebackq delims=" %%A in ("%ComputerList%") do (
    ping -n 1 -l 1 %%A >nul 
     if not errorlevel 1 (
      >>Check.csv echo %%A,online 
     ) else (
      >>Check.csv echo %%A,offline 
     ) 
) 

pause 
Goto Start 
+0

您好check.cvs只是這個文件的IP我想進入上面主代碼中的變量,而目前我手動編碼他們 PB1VAL9 \t 10.1.15.135 PB7B218 \t失敗 PB1VAL8 \t 10.1.15。111 PB7B210 \t 10.1.5.253 PB1VAE0 \t 10.1.14.110 PB7B247 \t 10.1.4.218 PBCPAB3 \t 10.1.3.201 PBBFXH5 \t 10.1.3.124 PB7B230 \t 10.1.4.128 PB1VAM3 \t 10.1.4.211 PB7B219 \t 10.1.5.240 PBBFXD6 \t 10.1.14.59 – user3319733

+0

你可以編輯你的問題並將其添加到你的問題,所以它是在正確的格式? – foxidrive

+0

完成希望你的意思 – user3319733