标题: 判断 计算机名称 替换文件
[打印本页]
作者: 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
Quote: |
@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楼的就是只判断计算机名称