百度首页 | 百度空间
 
文章列表
 
您正在查看 "Shell" 分类下的文章

2008-04-25 23:59
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
类别:Shell | 评论(0) | 浏览()
 
2008-03-21 14:50
译者:Anders

检索一个特定项目

用Get-Item cmdlet来检索一个特定的项目(如一个文件,一个文件夹,或者注册键值)。为什么你不想这么做?
好,对于一件事,这个性质使得它很容易的检索这些项目。举个例子,假设你想知道某人建立 C:\scripts 最近的时间。这里有个命令将检索那些信息:
代码:
$(Get-Item c:\scripts).lastaccesstime
实质上,我们使用Get-Item 参照 C:\Scripts 来创建一个对象。就是这个不寻常的语法原因:这个命令本身 - Get-Item C:\scripts   -   参数里圆括号,$ 写在前面。我们感兴趣的是在性质这里我们非得用标准的dot符号。(对象 .性质)。想知道在HKEY_CURRENT_USER\Software里发现多少字符键值?你来这看:
代码:
$(Get-Item hkcu:\software).subkeycount
很不错的问题:我们怎么知道这个字符串键值有注册键值这个一个性质的呢?很好,跟你说实话吧,我们没有这么做。不过另个方法可以很好的使用Get-Item:我们仅仅只是使用Get-Item来返回一个对象代表。HKEY_CURRENT_USER\Software 然后把对象用管道传给cmdlet:
代码:
Get-Item hkcu:\software | Get-Member
然后我们用Get-Member来显示出左边的性质和注册的钥匙键值。
类别:Shell | 评论(0) | 浏览()
 
2008-03-21 14:42
译者:Anders


核实是否存在的文件或文件夹

Test-Path是核实文件和文件夹主要的一个用途。举个例子,这个命令用来检查C:\Scripts\Test.txt是否存在:
代码:
Test-Path c:\scripts\test.txt
如果文件存在,Test-Path返回True,文件不存在就返回False。
由于cmdlets在通常情况下,你可以在Test-Path上使用通配符。举个例子,这个脚本告诉你在C:\Script文件里是否存在任何 .wma文件:

代码:
Test-Path c:\scripts\*.wma

曾经如果有人会问,你能用Test-Path来检查注册表键值是否存在吗?当然,你可以:
代码:
Test-Path HKCU:\Software\Microsoft\Windows\CurrentVersion

类别:Shell | 评论(0) | 浏览()
 
2008-03-19 13:21
译者:Anders


删除一个文件或文件夹(或其它输入的目标)

Remove-Item cmdlet 正好顾名思义:它能使你清除一个东西和所有东西。清除文件C:\Script\test.txt ?那就删除它:
代码:
Remove-Item c:\scripts test.txt
你也可以使用通配字符删除多个项目。举个例子,这个命令会删除所有在 C:\Scripts 里的文件 :
代码:
Remove-Item c:\scripts\*
这里是一个捕捉,当然。假设C:\Script包含替代的文件夹。在这种情况下,你可以提示是否要真的想要删除在Scripts文件夹里的任何东西。
代码:
Confirm
The item at C:\test\scripts has children and the -recurse parameter was not specified.
If you continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes   [A] Yes to All   [N] No   [L] No to All   [S] Suspend   [?] Help
(default is "Y"):
有快速绕过这个的方法吗?对;只要在你的命令结尾处附加 -recurse 参数:
代码:
Remove-Item c:\scripts\* -recurse
这是一个有趣的变化。假设这个Scripts文件夹包含了一大堆文件和你想要删除的所有东西。尝试一些不同的变化,不久它将变的很完美。
顺便说一下,Remove-Item cmdlet 有一个 -whatif 参数,这实际上并不能删除任何东西,但能告诉你会发生什么,如果你使用 Remove-Item。没有任何有用的意义那你是什么意思?这里,你先看看这个命令:
代码:
Remove-Item c:\scripts\*.vbs -whatif
如果我们运行这个命令,在文件夹C:\Scripts里所有 .vbs 类型的文件将会删除;当然我们会得到像这样返回的如下信息,让我们知道哪个文件被删除,如果你使用 Remove-Item 外部的 -whatif 参数:
代码:
What if: Performing operation "Remove File" on Target "C:\scripts\imapi.vbs".
What if: Performing operation "Remove File" on Target "C:\scripts\imapi2.vbs".
What if: Performing operation "Remove File" on Target "C:\scripts\methods.vbs".
What if: Performing operation "Remove File" on Target "C:\scripts\read-write.vbs
".
What if: Performing operation "Remove File" on Target "C:\scripts test.vbs".
What if: Performing operation "Remove File" on Target "C:\scripts\winsat.vbs".
除此之外,你可以删除其它的文件和文件夹。举个例子,任命一个show别名来获取这个清除命令:
代码:
Remove-Item alias:\show
做一个说明,如这个具体位置:alias:\ 。这是 Windows PowerShell 驱动的标准记号法。驱动字母,然后冒号,然后由一个"\" 。
代码:
Set-Location env:
类别:Shell | 评论(0) | 浏览()
 
2008-03-19 13:12
译者:Anders


新建一个文件和文件夹

在你的计算机上New-Item 是一个创建新文件和文件夹快而简单的的方法。
举个例子,架设你想在 C:\Scripts 文件夹内建立一个新的目录名为 Windows PowerShell 文件。仅仅只要使用New-Item :
1)新文件夹的完整路径;
2)新的项目类型(其中你可以置顶使用 -type 参数与目录值)。这个命令在问题中看起来像这样:
代码:
New-Item c:\scriptsWindows PowerShell -type directory
用同样的步骤创建一个新文件,文件夹,具体完整的路径名称。但是要输入 file。这个命令建立文件 C:\Scripts\New_file.txt :
代码:
New-Item c:\scripts ew_file.txt -type file
如果你输入的项目已经被建立存在了,你会得到一个错误的信息,类似这样:
代码:
New-Item : The file 'C:\scripts ew_file.txt' already exists.
当然,你可以在包含 -force 参数的情况下来废除这个默认行为:
代码:
New-Item c:\scripts ew_file.txt -type file -force
如果你使用 -force 来键入现在有的 New_file.txt 文件将全部更新,为空文件。
说到全部更新,为空文件,你也可以使用 -value 参数来添加一些数据到你的新文件里。这个命令上加上一句,This is text added to the file 的同时建立一个New_file.txt :
代码:
New-Item c:\scripts ew_file.txt -type file -force -value "This is text added to the file"
类别:Shell | 评论(0) | 浏览()
 
2008-03-19 13:08
译者:Anders



复制文件或文件夹

想要复制一个文件或文件夹到一个新的位置?那么你必须Copy-Item cmdlet 。举个例子,这里有一个命令从C:\ Scripts 文件夹下复制文件 Test.txt   到C: \Test 文件夹:

代码:
Copy-Item c:\scripts\Test.txt   c:\Test
要想在 C:\Scripts(包括要覆盖的文件夹) 复制所有项目到 C:\Test ?那么仅仅只要使用一个通配字符,像这样:
代码:
Copy-Item c:\scripts\*   c:\Test
你要使用的方法就摆在我们的面前:是的,下一个命令是在 C:\Scripts 里只复制 .txt 文件到 C:\Test :
Copy-Item c:\scripts\*.txt   c:\Test
最后,这个命令会复制一个文件夹 C:\Scripts 复制到文件夹 C:\Test 里;换句话说,这个复制信息将名为 C:\Test\Scripts 的文件夹。 命令在这:
代码:
Copy-Item c:\scripts c:\Test –recurse
巧合的是,-recurse 参数在这里绝对是关键;省去它的话,则它会把一个scripts文件夹建立在 C:\Test 里,但是 C:\Scripts 中没有文件和文件夹会复制到这个新的位置;你会建立一个 C:\Test\Scripts 文件夹,但是里面没有任何东西。

类别:Shell | 评论(0) | 浏览()
 
2008-03-19 13:00
译者:Anders

执行日期算法

在Windows PowerShell里New-TimeSpan cmdlet提供了一种方法做日期算法。
举个例子,这个命令告诉你今天的日期与2006年除夕之间的天数:
代码:
New-TimeSpan $(Get-Date) $(Get-Date –month 12 -day 31 -year 2006)
当这个命令被运行到2006年5月10日时我们回到如下:
代码:
Days              : 235
Hours          : 0
Minutes           : 0
Seconds           : 0
Milliseconds    : 0
Ticks          : 203040000000000
TotalDays       : 235
TotalHours        : 5640
TotalMinutes    : 338400
TotalSeconds    : 20304000
TotalMilliseconds : 20304000000
:所有知道2006年5月10日和12月31日之间有20,304,000,000毫秒的请举手。
使用New-TimeSpan你只需要它通过一个date-time的值。这样做的最佳方式是使用Get-Date类函数;这能帮助于你得到一个date-time对象与New-TimeSpan能一起工作。为我们的第一个日期,我们仅仅使用Get-Date cmdlet而无需任何参数(注意,cmdlet必须圆括号):
代码:
$(Get-Date)
为我们的第二个日期我们也用Get-Date,但是我们要附加 -month,-day,与-year参数,使用适当的值:
代码:
New-TimeSpan $(Get-Date) $(Get-Date –month 12 -day 31 -year 2006)
假如你需要知道多久,它是一个更具体的时间,如下午11:30 12月31日?
像往常一样这没有什么问题:只要包括-hour 与 -minute参数来使用适当的值(小时,使用24小时的时间格式)
换句话说:
代码:
New-TimeSpan $(Get-Date) $(Get-Date –month 12 -day 31 -year 2006 -hour 23 -minute 30)
类别:Shell | 评论(0) | 浏览()
 
2008-03-19 12:53
译者:Anders

改变一台计算机的日期与时间

在解释如何使用这个最新Set-Date cmdlet以前,我们应该注意到,这是一个cmdlet。你应该小心使用。 举个例子来说,如果你在活动目录环境下,你的工作站必须密切配合你的域控制器;如果他们并非这样,你可能无法登录到域。电脑的时间是经常被指派使用一个自动时间服务;在这种情况下,你也许并不必(或许不应该)手动来设定日期和时间。

当然,如果你需要设定日期和时间,那么Set-Date可以提供一个简单的方法来这样做。

一个可以改变一台计算机上的日期/时间的方法就是使用 -date参数来更新日期和时间。举个例子,假设你要设定的日期和时间是在2006年6月1日的上午8:30。这里你可以这样做:
代码:
Set-Date –date "6/1/2006 8:30 AM"
需要设定的时钟刚好要提前两天?可以使用Get-Date cmdlet这个命令和AddDays方法来提前时钟两天:
代码:
Set-Date (Get-Date).AddDays(2)
也可以在这里用其它方法,包括AddHours ,AddMinutes 和Addseconds . 需要设定倒流1小时(夏令时)来节约时间? 那么只需要设置倒流 -1 (减1 ) 小时,象这样:
代码:
Set-Date (Get-Date).AddHours(-1)
另外,你也可以使用-adjust参数以格式:小时:分:秒 来调整。 举个例子,这个命令集把时钟提前了1小时37分:
代码:
Set-Date –adjust 1:37:0
类别:Shell | 评论(0) | 浏览()
 
2008-03-19 11:32

摘自 powershell 手册

如果您发现自己会条件反射地使用这些命令之一而又希望了解本机 Windows PowerShell 命令的真实名称则可以使用 Get-Alias 命令

PS> Get-Alias cls

CommandType     Name                            Definition

-----------     ----                            ----------

Alias           cls                             Clear-Host

为使示例更易于阅读,“Windows PowerShell 入门中通常避免使用别名。但是如果要处理来自其他来源的任意 Windows PowerShell 代码段或希望定义自己的别名则尽早了解有关别名的详细信息仍然十分有用。本节中的其余内容将介绍标准别名以及如何定义您自己的别名。

解释标准别名

上述别名是专为实现与其他界面的名称兼容性而设计的,Windows PowerShell 中的内置别名与其不同,它们通常是为了简短易用而设计的。这些简短的名称便于快速键入,但如果您不了解其含义,则无法解读它们。

通过提供一组基于常用动词和名词的速记名称的标准别名Windows PowerShell 试图在清晰性与简短性之间取得平衡。这样,在一组常用 cmdlet 的核心别名中,您只需了解速记名称即可解读这些命令。例如,在标准别名中,动词 Get 缩写为 g,动词 Set 缩写为 s,名词 Item 缩写为 i,名词 Location 缩写为 l,而名词 Command 缩写为 cm

以下简短示例说明了这一工作机制。Get-Item 的标准别名是通过将表示 Get g 与表示 Item i 组合而获得的:giSet-Item 的标准别名是通过将表示 Set s 与表示 Item i 组合而获得的:siGet-Location 的标准别名是通过将表示 Get g 与表示 Location l 组合而获得的glSet-Location 的标准别名是通过将表示 Set s 与表示 Location l 组合而获得的:slGet-Command 的标准别名是通过将表示 Get g 与表示 Command cm 组合而获得的:gcm。不存在 Set-Command cmdlet,但如果其存在,我们很容易即可猜测出其标准别名是通过将表示 Set s 和表示 Command cm 组合而获得的:scm。此外,如果熟悉 Windows PowerShell 别名的人员遇到 scm,他们也会猜测到该别名是指 Set-Command

创建新别名

使用 Set-Alias cmdlet,可以创建您自己的别名。例如,以下语句将创建在“解释标准别名”中介绍的标准 cmdlet 别名:

Set-Alias -Name gi -Value Get-Item

Set-Alias -Name si -Value Set-Item

Set-Alias -Name gl -Value Get-Location

Set-Alias -Name sl -Value Set-Location

Set-Alias -Name gcm -Value Get-Command

在内部Windows PowerShell 在启动期间使用此类命令但这些别名是不可更改的。如果尝试实际执行这些命令之一,您将获得一条错误消息,表明无法修改该别名。例如

PS> Set-Alias -Name gi -Value Get-Item

Set-Alias: 别名不可写入,因为别名 gi 为只读别名或常量,无法写入。

所在行:1 字符:10

+ Set-Alias <<<< -Name gi -Value Get-Item

类别:Shell | 评论(1) | 浏览()
 
2007-11-24 20:42
#!/usr/bin/env python

# Image upload script for http://www.imageshack.us written in python.
# base functions are from ASPN:
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
#
# Author: Steve Wen <sssslang@gmail.com>

import httplib, mimetypes, re, sys

def post_multipart(host, selector, fields, files):
    content_type, body = encode_multipart_formdata(fields, files)
    h = httplib.HTTP(host)
    h.putrequest('POST', selector)
    h.putheader('content-type', content_type)
    h.putheader('content-length', str(len(body)))
    h.endheaders()
    h.send(body)
    errcode, errmsg, headers = h.getreply()
    return h.file.read()

def encode_multipart_formdata(fields, files):
    BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'

    CRLF = '\r\n'
    L = []
    for (key, value) in fields:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"' % key)
        L.append('')
        L.append(value)
    for (key, filename, value) in files:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
        L.append('Content-Type: %s' % get_content_type(filename))
        L.append('')
        L.append(value)
    L.append('--' + BOUNDARY + '--')
    L.append('')
    body = CRLF.join(L)
    content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
    return content_type, body

def get_content_type(filename):
    return mimetypes.guess_type(filename)[0] or 'application/octet-stream'


if __name__ == '__main__':
    if len(sys.argv) != 2:
        print "Usage: %s <image file>" % sys.argv[0]
        sys.exit(0)

    params = [('MAX_FILE_SIZE', '13145728'),]
#          ('refer', 'http://www.imageshack.us/')]
    files = [('fileupload', sys.argv[1], open(sys.argv[1], 'rb').read())]
    res = post_multipart('imageshack.us', '/index.php', params, files)
    #res = open('is.html').read()
    URL = re.compile('(?<=\[IMG\])\S+(?=\[/IMG\])')
    matches = URL.findall(res)
    for i in matches:
        if i.find('th') == -1:
            print i
            break
    else:
        print "cannot get url"
类别:Shell | 评论(1) | 浏览()
 
     
 
 
文章分类
 
 
 
Apps(56)
 
Config(35)
 
Shell(47)
 
 
 
 
 
 
Others(17)
 
 
 
Emacs(16)
 
 
 
 
 
 
Games(19)
 
Asm(2)
 
Vim(10)
 
 
 
Hack(6)
 
 
Tip(23)
 
Sql(15)
 
 
Gtk(2)
 
Gentoo(35)
 
 
 
 
 
 
Ad(0)
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

信息要互通有无,谢谢分享
 

长见识啦
 

高手
 

汗...
 
 
     


©2008 Baidu