标题: 提取计算机名称中的后三位
[打印本页]
作者: 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
注意有个负号。