Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 从文件填充批处理_Variables_Batch File_Set_Batch Processing_Ping - Fatal编程技术网

Variables 从文件填充批处理

Variables 从文件填充批处理,variables,batch-file,set,batch-processing,ping,Variables,Batch File,Set,Batch Processing,Ping,我一直在努力解决这一问题,这是一个相当简单的批次,但我几乎迷路了,搜索接近了我的目标,但似乎没有起作用,所以我希望有人能帮我解决这个问题 我有一个批处理文件,它远未优化,但我现在尝试的基本上是使用批处理中运行的ping,该批处理写入check.csv,然后在开始时填充各个IP(希望有意义) 在坚果壳里 开头的变量应通过check.csv填充 这是密码 '@echo off rem set the individual IP addresses Rem these are manually se

我一直在努力解决这一问题,这是一个相当简单的批次,但我几乎迷路了,搜索接近了我的目标,但似乎没有起作用,所以我希望有人能帮我解决这个问题

我有一个批处理文件,它远未优化,但我现在尝试的基本上是使用批处理中运行的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 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.
删除了更多相同的代码(只是为不同的用户复制了上述代码)

删除了更多相同的代码(只是为不同的用户复制了上述代码)

删除了更多相同的代码(只是为不同的用户复制了上述代码)

以下是check.csv文件内容

PB1VAL9 10.1.15.135 
PB7B218 Failed 
PB1VAL8 10.1.15.111 
PB7B210 10.1.5.253 

删除了更多相同的代码(只是为不同的用户复制了上述代码)

尝试使用此例程将变量设置为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

如果你能制作一个演示问题的较小的测试示例,那么会有所帮助。不是所有的批处理代码都需要重现问题。完成,希望你的意思是check.cvs只是这个文件中的IP,我想进入上面主代码中的变量,鉴于目前我手工编码PB1VAL9 10.1.15.135 PB7B218失败PB1VAL8 10.1.15.111 PB7B210.1.5.253 PB1VAE0 10.1.14.110 PB7B247 10.1.4.218 PBCPAB3 10.1.3.201 PBBFXH5 10.1.3.124 PB7B230 10.1.4.128 PB1VAM3 10.1.4.211 PB7B219 10.1.5.240 PBBFXD6 10.14.59您能否编辑您的问题并将其添加到您的问题中,所以它的格式是正确的?嗨,foxidrive,这部分是正确的,它告诉我他们是否在线,但它也需要从check.csv中获取IP地址,并在主体中填充IP地址(希望有意义),其中第1行读取set sarah=我需要从check.csv自动填充。抱歉,我认为我在这一点上不够清楚,我的答案中较小的代码块设置了变量-示例文件中没有
sarah/richard/kathh
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'
PB1VAL9 10.1.15.135 
PB7B218 Failed 
PB1VAL8 10.1.15.111 
PB7B210 10.1.5.253 
echo off
for /f "usebackq tokens=1,2" %%a in ("check.csv") (
    echo setting %%a=%%b
    set "%%a=%%b"
)
: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