中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 07:03
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 提取计算机名称中的后三位
可打印版本  801 / 4
第1楼 iamqiuhui 发表于 2009-02-02 13:13
初级用户 发帖 17 积分 28
提取计算机名称中的后三位
比如计算机名称为xc005
我想提取后三位,然后保存到一个文件,或者保存到一个变量!
hostname >hostname.txt
下边的不知道了!
应该如何操作。
谁可以告诉我!!!
谢谢!



转移自 DOS学习入门 & 精彩文章 (教学室)
从你所需要的结果来看你的问题似乎不属于 DOS 范畴,今后发帖请尽量发到对应的版块。
——管理员
第2楼 523066680 发表于 2009-02-02 16:19
银牌会员 发帖 1,133 积分 2,362
可能这个可以 我不太了解
%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 ]
第3楼 iamqiuhui 发表于 2009-02-03 13:24
初级用户 发帖 17 积分 28
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%
有人指点下吗?
第4楼 523066680 发表于 2009-02-03 17:13
银牌会员 发帖 1,133 积分 2,362
呕心沥血地说…… 用什么方法得 看条件 ,环境。。。。。。

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



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

[ Last edited by 523066680 on 2009-2-3 at 17:30 ]
第5楼 wxcute 发表于 2009-02-03 21:20
中级用户 发帖 211 积分 458
用 hostname 命令:

或如楼上据说,用系统环境变量 %computerName%
echo %computerName:~-3%
pause

注意有个负号。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023