Board logo

标题: 提取计算机名称中的后三位 [打印本页]

作者: iamqiuhui     时间: 2009-2-2 13:13    标题: 提取计算机名称中的后三位

比如计算机名称为xc005
我想提取后三位,然后保存到一个文件,或者保存到一个变量!
hostname >hostname.txt
下边的不知道了!
应该如何操作。
谁可以告诉我!!!
谢谢!



转移自 DOS学习入门 & 精彩文章 (教学室)
从你所需要的结果来看你的问题似乎不属于 DOS 范畴,今后发帖请尽量发到对应的版块。
——管理员

作者: 523066680     时间: 2009-2-2 16:19
可能这个可以 我不太了解
%USERDOMAIN:~-3%>hostname.txt

如果不对 多一步咯
hostname>hostname.txt
set /p a=<hostname.txt
echo,%a:~-3%>hostname.txt

(如果说的是纯dos 那我就不知道了)

[ Last edited by 523066680 on 2009-2-2 at 16:21 ]
作者: iamqiuhui     时间: 2009-2-3 13:24
set /p a=<hostname.txt
echo,%a:~-3%>hostname.txt
set /p中的/p可以省略吗,我省略了,结果是hostname.txt里面的内容.
echo,%a:~3%>hostname.txt这句怎么理解?
最后的结果并没有出现后三位啊!
我发现这样就可以了:
@echo off
hostname>hostname.txt
for /f %%h in (hostname.txt) do set m=%%h
echo 计算名为:
echo %m%
set nodename=%m:~2%
echo nodename为:
echo %nodename%&&pause>nul


不过不明白,为什么在for语句中不可以直接截取后三位:
如:
for /f %%h in (hostname.txt) do set nodename=%%h:~3%
这样的话,命令会识别为nodename=x:~3%
有人指点下吗?
作者: 523066680     时间: 2009-2-3 17:13
呕心沥血地说…… 用什么方法得 看条件 ,环境。。。。。。

而且我越看你说的越晕  %computername:~-3%就是了
你那台 %computername:~2%也可以 因为你那个是5个字符组成的计算机名
%computername:~-3%是为了通用 注意: 是 -3



(楼主是指纯DOS环境么  那个我就不懂了 )

[ Last edited by 523066680 on 2009-2-3 at 17:30 ]
作者: wxcute     时间: 2009-2-3 21:20
用 hostname 命令:
@echo off
for /f %%h in ('hostname') do set m=%%h
echo %m:~-3%
pause
或如楼上据说,用系统环境变量 %computerName%
echo %computerName:~-3%
pause

注意有个负号。