中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » WinPE、PowerShell及其它命令行系统专区 » [公告][原创]欢迎大家的到来暨PowerShell初步印象
« [1] [2] »
作者:
标题: [公告][原创]欢迎大家的到来暨PowerShell初步印象 上一主题 | 下一主题
tigerpower
中级用户

大师兄


积分 377
发帖 99
注册 2005-8-26
状态 离线
『楼 主』:  [公告][原创]欢迎大家的到来暨PowerShell初步印象

这里刚刚成立,欢迎大家的到来!
由于正值五一假期,估计今后几天没有时间写文章,但也不希望这里是空荡荡的,所以就先简单的跟大家聊一聊PowerShell。

先申明一点,如果您是初学者,下面说的内容您并不是全懂,或者说,您对于命令行根本是个门外汉,但却对它很有兴趣,那么请您随时关注我们这个版块,我们将为初学者编写循序渐进的教程,使之能逐步掌握和使用。教程具体撰写工作将在节后逐步展开。
敬请期待!

PowerShell是微软下一代Windows命令行工具,它是一个全新的命令行,我粗略地读了一下它的手册页,并简单地试了几条命令,给我最强烈的感觉是“这个新工具的用法太像python了”(python是一种面向对象的脚本语言)。

我们知道,传统的shell-比如windows XP中的cmd.exe,它的输入输出都是文本,当我们用管道或者重定向连接几个命令时,我们所传递的都是文本。而PowerShell与之完全不同,它的输入输出都是对象。您可能没有面向对象的编程经验,这不要紧,我们先来看几个例子:
今天是2006年5月1日,我现在只想要年份,在cmd.exe中,我们可以

C:\> echo %date:~0,4%
2006

用切片的方法获得前4个字符。但这种方法有一个问题,那就是其他民族可能用的是05/01/2006的月/日/年的书写习惯,所以当系统的“区域和语言选项”设置不同时,变量date前4个字符未必就是年份。

而在PowerShell中的做法是:

PS C:\> [datetime]::now.year
2006

[datetime]作为一个对象有属性now,now自身又有属性year。(属性其实类似于变量)
于是我们用上面的方法得到了年份。

如果我们要得到昨天日期,可以在PowerShell中:

PS C:\> [datetime]::now.adddays(-1)
2006年4月30日 7:29:00

只要昨天日期中的月份:

PS C:\> [datetime]::now.adddays(-1).month
4

adddays称为now的方法(方法其实类似于函数)
如果要把这个月份保存在变量中以便以后使用:

PS C:\> $yestoday=[datetime]::now.adddays(-1).month
PS C:\> $yestoday
4

如果windows XP下的cmd要做同样的事(假设不借助第三方软件),一般先将年、月、日各自切片存入变量,然后再自己编写算法,由于要考虑一个月中有28天、30天、31天,还要考虑闰年,所以算法并不是很简单的。


可能您会问,究竟什么是属性,什么方法,它们要怎么使用?
举个例子:男生小明是体育委员,女生小玲是班长
小明作为一个对象他就有性别这个属性,这个属性的值就是男。
小明.性别     ->男
所以当在命令行里出现“小明.性别”,系统会自动计算出“男”。
类似的我们可以用“小玲.姓名”,系统会自动计算出“小玲”。
由于小玲是班长,在上下课时可以发送“起立”的指令。所以小铃就有“起立”这个方法,使用这个方法的结果就是全班同学站起。
小玲.起立()   ->全班同学站起

又比如把"this is a string"转换成大写

PS C:\> "this is a string".ToUpper()
THIS IS A STRING

只要是字符串,就一定有ToUpper()这个方法。
"this is a string".ToUpper()返回的仍然是一个字符串对象,我们还可以用字符串的方法继续下去。

PS C:\> "this is a string".ToUpper().ToLower()
"this is a string"

关于PowerShell,今天就先谈到这里。

[ Last edited by tigerpower on 2006-5-2 at 12:50 ]

2006-5-1 08:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 2 楼』:  

支持

2006-5-2 18:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 3 楼』:  

新的命令行.用的是对象.不错.
就像在VB家族一样.也是用对象.

2006-5-2 18:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wl00560
银牌会员





积分 1384
发帖 709
注册 2005-10-29
状态 离线
『第 4 楼』:  

问一下楼主,powerShell哪儿有下载的?我想学学,就是不要太难了,呵呵。

2006-5-2 19:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tigerpower
中级用户

大师兄


积分 377
发帖 99
注册 2005-8-26
状态 离线
『第 5 楼』:  

安装Windows PowerShell您需要
1. Windows XP/2003/Vista的操作系统
2. .NET Framework Version 2.0 RTM

微软官方2006年4月25日发布Windows PowerShell预览版(RC1),它的最终正式版有望在今年第四季度发布。
点击进入Windows PowerShell RC1下载页面(需注册)

同一页面上有关于PowerShell帮助文档的链接(“Windows PowerShell RC1 Documentation Pack”)
以及.NET Framework Version 2.0 RTM的链接(“More .NET Framework Downloads”)
除了32位的版本,它还有x64、ia64的版本。

[ Last edited by tigerpower on 2006-5-2 at 20:58 ]

2006-5-2 20:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wl00560
银牌会员





积分 1384
发帖 709
注册 2005-10-29
状态 离线
『第 6 楼』:  

原来还在测试啊,那就先等等。

2006-5-2 21:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 7 楼』:  

支持~~~~太象Bash了~~

2006-5-3 21:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 8 楼』:  

  今天才看到微软的下一代命令行用法,感觉这个工具真是强大啊——不知道下个版本的操作系统还支持xp下的所有cmd命令不。

2006-6-9 08:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
IceCrack
中级用户

DOS之友


积分 332
发帖 168
注册 2005-10-6
来自 天涯
状态 离线
『第 9 楼』:  

呵呵  暂时还用不上。很多命令,现在的机子应该是不支持的。那个支持对像真的很不错

2006-7-13 07:44
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (369525996)  编辑帖子  回复  引用回复
willsion
高级用户




积分 789
发帖 310
注册 2004-9-2
状态 离线
『第 10 楼』:  

功能强大,不错。

感觉有点像C语言的“结构”部分。

[ Last edited by willsion on 2006-7-31 at 13:20 ]

2006-7-31 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『第 11 楼』:  

Windows PowerShell的帮助文件不会用,所以Windows PowerShell不会用

2006-10-6 09:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 12 楼』:  

和楼上的有同感。不过现在 Power Shell 已经作为 微软 Script Center 的一部分了,足以可见PowerShell的重要性




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-8 05:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  

顶一下先``
下一代的命令提示功能更强大了,支持~~~

2006-10-8 06:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 14 楼』:  

我下了, 还要 .net 的支持, .net 要二十二 M, 看了帮助, 不太懂, 就是什么对象, 还有什么别名, 后来不知怎么 .chm 文件 受限用户无法打开, 就把 .net 卸载了.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-4-25 10:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 15 楼』:  

汗,先下载.net然后安装Powershell就行了啊,不用管.NET的,Powershell可以直接用。

2007-4-28 18:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: