Board logo

标题: 判断 计算机名称 替换文件 [打印本页]

作者: beyoungse     时间: 2008-8-27 04:09    标题: 判断 计算机名称 替换文件
计算机所在IP段192.168.0.1-192.168.0.150 计算机名称对应为a001-a150 a001-a060 把D:\A.TXT 改为OK.TXT a061-a120 把D:\B.TXT 改为OK.TXT a121-a150 把D:\C.TXT 改为OK.TXT 谢各位大侠指教

作者: slore     时间: 2008-8-27 08:47
ipconfig /all+for能得到IP %USERDOMAIN%是计算机名称

作者: HAT     时间: 2008-8-27 09:43
@echo off
if "%computername%" geq "a001" (
  if "%computername%" leq "a060" (
    ren "D:\A.TXT" "OK.TXT"
  )
) else if "%computername%" geq "a061" (
  if "%computername%" leq "a120" (
    ren "D:\B.TXT" "OK.TXT"
  )
) else if "%computername%" geq "a121" (
  if "%computername%" leq "a150" (
    ren "D:\C.TXT" "OK.TXT"
  )
)

作者: slore     时间: 2008-8-27 09:51
要判断 机名和IP是否一致

作者: dato     时间: 2008-8-27 10:05
.\psexec.exe -accepteula @..\iplist.txt -u username -p "passwords" -c rename.cmd rename.cmd ren d:\a.txt d:\ok.txt 如果你用psexec一切是不是简单多了,管理大批机器极力推荐psexec非常高效方便,节省时间,一切都是鼠标点点就OK

作者: HAT     时间: 2008-8-27 10:29
@echo off
for /f "tokens=15" %%a in ('ipconfig^|findstr /i "IP"') do (
  for /f "tokens=4 delims=." %%b in ("%%a") do set IP=%%b
  goto :check
)
goto :eof
:check
if %IP% lss 10 (
  if "a00%IP%" equ "%computername%" (
    ren "D:\A.TXT" "OK.TXT"
  )
) else if %IP% lss 100 (
  if "a0%IP%" equ "%computername%" (
    ren "D:\B.TXT" "OK.TXT"
  )
) else if %IP% leq 150 (
  if "a%IP%" equ "%computername%" (
    ren "D:\C.TXT" "OK.TXT"
  )
)

作者: shqf     时间: 2008-8-27 13:03
楼主的意思是好象远程对192.168.0.1-192.168.0.150 的电脑进行管理吧,代码如下(假设登录远程电脑的用户名都为administrator,口令都为1111):
@echo off
for /l %%i in (1,1,150) do (
	if %%i leq 60 (set fname=A.TXT) else (if %%i leq 120 (set fname=B.TXT) else (set fname=C.TXT))
call :re_name %%i
)
pause
goto :eof

:re_name
wmic /node:192.168.0.%1 /password:1111 /user:administrator datafile "c:\\%fname%" call rename c:\OK.TXT
[ Last edited by shqf on 2008-8-27 at 01:09 PM ]

作者: beyoungse     时间: 2008-8-27 16:18
谢过几位大侠,我用了都不是很理想 再次描述我的需求: 让此脚本在每台机器上开机运行,IP和机器名称是全部匹配好的,让不同IP段的机器看到不同的D:\OK.TXT

作者: HAT     时间: 2008-8-27 16:57
6楼的代码是如何“不是很理想”的?详细描述一下? 开机运行的话,可能是计算机还没有来得及分配到IP,不知道你是不是这个问题。

作者: beyoungse     时间: 2008-8-27 17:21
@echo off for /f "tokens=15" %%a in ('ipconfig^|findstr /i "IP"') do ( for /f "tokens=4 delims=." %%b in ("%%a") do set IP=%%b goto :check ) goto :eof :check if %IP% lss 10 ( if "a00%IP%" equ "%computername%" ( ren "D:\A.TXT" "OK.TXT" ) ) else if %IP% lss 100 ( if "a0%IP%" equ "%computername%" ( ren "D:\B.TXT" "OK.TXT" ) ) else if %IP% leq 150 ( if "a%IP%" equ "%computername%" ( ren "D:\C.TXT" "OK.TXT" )
谢谢hat ,这个可以实现,

作者: beyoungse     时间: 2008-8-27 17:27
如果只判断计算机名称怎么做?谢谢,我很菜,正在学习中.

作者: HAT     时间: 2008-8-27 17:40
3楼的就是只判断计算机名称