中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » setx本地或系统环境中设置变量无需编写脚本。
作者:
标题: setx本地或系统环境中设置变量无需编写脚本。 上一主题 | 下一主题
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『楼 主』:  setx本地或系统环境中设置变量无需编写脚本。

Setx
在本地或系统环境中设置环境变量,无需编写程序或制作脚本。Setx 还检索注册表项的值并将其写入到文本文件。

语法
setx [/s Computer [/u [Domain\]User [/p [Password]]]] VariableValue [/m]

setx [/s Computer [/u [Domain\]User [/p [Password]]]] [Variable] /k Path [/m]

setx [/s Computer [/u [Domain\]User [/p [Password]]]] /f FileName {[Variable] {/a X,y | /r X,y "String"} [/m] | /x} [/d Delimiters]

参数
/s Computer

指定远程计算机名称或 IP 地址(不能使用反斜杠)。该默认值是本地计算机。此参数适用于在命令中指定的所有文件和文件夹。

/u [Domain\]User

使用指定用户帐户的权限运行脚本。该默认值是系统权限。

/p [Password]

指定在 /u 参数中指定的用户帐户的密码。

Variable

指定要设置的环境变量的名称。

Value

指定要将环境变量设置到的值。

/k Path

指定根据来自注册表项的信息设置变量。指定 Path,格式为 \HIVE\KEY\...\Value(例如,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName)。

/f FileName

指定要使用的文件。

/a X,y

指定绝对坐标和偏移量作为搜索参数。

/r X,y "String"

指定来自 String 的相对坐标和偏移量作为搜索参数。

/m

指定设置系统环境中的 Variable。默认值是本地环境。

/x

显示文件坐标。忽略 /a、/r 和 /d 命令行选项。

/d Delimiters

指定附加的分隔符,如“,”或“\”。四个内置的分隔符为空格、跳格键、回车和换行符。可使用任何 ASCII 字符作为附加的分隔符。分隔符的最大值为 15,包括四个内置的分隔符。

/?

在命令提示符下显示帮助。

注释
• 使用 /s、/u 和 /p 命令行选项。只有在使用使用 /s 时才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。

• Setx 提供仅用于命令行或编程的方式直接且永久地设置系统环境值。系统环境变量可通过“控制面板”或通过注册表编辑器 (Regedit.exe) 手动配置。Set 命令为命令解释程序(即,Cmd.exe)的内部命令,仅为当前控制台窗口设置用户环境变量。

• 您可以使用 setx 从以下三个源之一为用户和系统环境变量设置值:命令行模式、注册表模式或文件模式。

• Setx 类似于 UNIX 实用程序 SETENV。

• Setx 将变量写入到注册表中的主环境。用 setx 设置的变量仅在未来的命令窗口中可用,而不是在当前的命令窗口。

• 只支持 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 配置单元。REG_DWORD、REG_EXPAND_SZ、REG_SZ AND REG_MULTI_SZ 是有效的 RegKey 数据类型。

• 当在注册表中访问 REG_MULTI_SZ 值时,只有第一项被展开和使用。

• 无法使用 setx 删除添加到本地或系统环境中的值。可以使用带有变量名但不带值的 set 来删除本地环境中对应的值。

• REG_DWORD 注册表值将以十六进制的模式展开并使用。

• 文件模式仅支持对 CR-LF 文本文件的解析。


示例
要在本地环境中将 MACHINE 环境变量设置为 Brand1,请键入:

setx MACHINE brand1

要在系统环境中将 MACHINE 环境变量设置为 Brand1 Computer,请键入:

setx MACHINE "brand1 computer" /m

要在本地环境中设置 MYPATH 环境变量以使用在 PATH 环境变量中定义的搜索路径,请键入:

setx MYPATH %PATH%

要在本地环境中设置 MYPATH 环境变量以便在将 ~ 替换为 % 后使用在 PATH 环境变量中定义的搜索路径,请键入:

setx MYPATH ~PATH~

要在一台名为 Computer1 的计算机上将本地环境中的 MACHINE 环境变量设置为 BRAND1,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE BRAND1

要在一台名为 Computer1 的计算机上将本地环境中的 MYPATH 环境变量设置为使用在 PATH 环境变量中定义的搜索路径,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

要在本地环境中将 TZONE 环境变量设置为在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName 注册表项中找到的值,请键入:

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

要在系统环境中将 BUILD 环境变量设置为在 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber 注册表项中找到的值,请键入:

setx BUILD /k "HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber" /m

要在一台名为 Computer1 的计算机上的本地环境中将 TZONE 环境变量设置为在 HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Control\TimeZoneInformation\StandardName 注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Control\TimeZoneInformation\StandardName

要在一台名为 Computer1 的计算机上的系统环境中将 BUILD 环境变量设置为在 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber 注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 BUILD /k "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber" /m

要显示文件 ipconfig.out 的内容及其对应的坐标,请键入:

setx /f ipconfig.out /x

要在本地环境中将 IPADDR 环境变量设置为在文件 ipconfig.out 中的 5,11 坐标处找到的值,请键入:

setx IPADDR /f ipconfig.out /a 5,11

要在本地环境中将 OCTET1 环境变量设置为在带有分隔符“#$*.”的文件 ipconfig.out 中 5,3 坐标处找到的值,请键入:

setx OCTET1 /f ipconfig.out /a 5,3 /d "#$*."

要在本地环境中将 IPGATEWAY 环境变量设置为在文件 ipconfig.out 中相对于“Gateway”坐标为 0,7 的坐标处找到的值,请键入:

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

要显示一台名为 Computer1 的计算机上的文件 ipconfig.out 的内容及其对应的坐标,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x

   此帖被 +3 点积分     点击查看详情   
评分人:【 redtek 分数: +3  时间:2006-12-7 08:23




bat c c++
2006-12-7 08:18
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 2 楼』:  

欣赏~~



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-7 08:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 3 楼』:  

setx 直接将变量写入注册表,重起机器变量依然存在



bat c c++
2006-12-7 08:28
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

需要额外安装,不如用vbs。

2006-12-7 12:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kaidi
新手上路





积分 16
发帖 8
注册 2006-11-4
状态 离线
『第 5 楼』:  

不错的东东,今天正找这个了。

2007-1-27 10:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 6 楼』:  

copy + c

2007-1-27 10:20
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
luckyjady
新手上路





积分 2
发帖 2
注册 2010-4-11
状态 离线
『第 7 楼』:  

setx的好帖,提供setx的下载最好.

2010-10-27 11:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
726842270
初级用户

枫中残雪


积分 65
发帖 43
注册 2010-4-29
来自 吉林省长春市
状态 离线
『第 8 楼』:  

LZ对SET有很独特的理解啊,我还以为只有用REG才能修改注册表呢,看来得努力学习了

2010-10-27 13:15
查看资料  发送邮件  发短消息 网志  OICQ (726842270)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: