PowerShell一次打开多个文件的方法_PowerShell

有时候,我们想通过PowerShell脚本一次性打开多个文件,尤其是相同后缀名的所有文件。我们来写一个函数,函数名为Open-File,通过传递一个*.后缀给此函数,实现一次性打开所有的此后缀的文件。

复制代码 代码如下:

Function Open-File{
   param(
       [Parameter(Mandatory=$true)]
       $path
   )
   $paths = Resolve-Path $path -ea SilentlyContinue
   if ($paths -ne $null) {
       $paths | Foreach-Object { Invoke-Item $_ }
   } else {
       "No file matched $path."
   }
}

在调用之前,先来解释一下。首先定义一个函数名为Open-File的函数,它有一个$path参数,这个参数是必填的。然后,使用Resolve-Path这个方法,把包含通配符的路径转换为一个真实路径的对象数组。最后,循环这个数组,使用Invoke-Item方法,来打开数组中的各个对象。

下面来看如何调用这个一次性打开多个文件的函数Open-File。

复制代码 代码如下:

PS >Open-File *.log

这个调用语句的作用是,打开当前目录下所有的.log后缀的文件。

好了,今天这个一次性打开多个文件的脚本就写到这样,感谢对小编的支持!

时间: 2024-10-09 12:30:23

PowerShell一次打开多个文件的方法_PowerShell的相关文章

Android编程实现使用webView打开本地html文件的方法

本文实例讲述了Android编程实现使用webView打开本地html文件的方法.分享给大家供大家参考,具体如下: 在布局的配置文件里: <WebView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/webView"> </WebView> 后台java代码; @SuppressLint(

用ASP打开远端MDB文件的方法

用ASP打开远端MDB文件 如果你用ODBC connection (DSN or DSN-less)来访问远端的(UNC path)数据库, OLEDB会出现以下错误信息: Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unk

在FLASH动画中打开任何格式文件的方法

flash动画 在FLASH中,大家可以调用以下语句来打开文件.该方法简单,但存在一个很大的缺陷.就是只能打开可执行文件: flcommand("exec",""); 既然可以打开可执行文件,那是不是可以通过打开一个可执行文件A,然后再用A来打开我们想打开的文件呢?下面,我们就可以使用bat文件来做这个可执行文件A吧. 1.在FLASH中的ACTIONSCRIPT中写入以下语句: on(release){fscommand("exec",&quo

在cmd中直接运行PowerShell脚本文件的方法_PowerShell

以前在cmd中执行powershell,我们都是这样: 复制代码 代码如下: PowerShell.exe -file a.ps1 现在想在cmd中这样执行: 复制代码 代码如下: a.ps1 此时需要将Powershell脚本的默认打开方式选择为Powershell.exe,可以鼠标右键操作. 也可以使用下面的cmd以管理员权限打开,然后运行命令: 复制代码 代码如下: ftype Microsoft.Powershellscript.1="%SystemRoot%\system32\wind

PowerShell Out-File禁止覆盖文件的方法_PowerShell

本文介绍使用PowerShell来写文件时,如何阻止系统自动覆盖已有的文件. 我们在使用脚本进行文件处理的时候,我们可能不希望使用Ou-File生成的文件覆盖已有的文件.那么怎么实现呢?在Out-File这个CmdLet中,有没有什么参数可以阻止Out-File不声不响的覆盖了已有的文件呢? 答案是-NoClobber参数. NoClobber参数 在Out-File输出到文件时,如果使用了-NoClobber参数,则系统遇到已有文件时,将无法执行成功.下面的例子展示了当d:\1.txt已经存在

PowerShell单行注释、多行注释、块注释的方法_PowerShell

PowerShell的注释符分为行注释符和块注释符.行注释符使用井号(#)引起一行:块注释符使用"<#"和 "#>"来引起一段注释. 行注释符 举例如下: 复制代码 代码如下: # 定义一个计数变量 $i = 0 块注释符.多行注释 举例如下: 复制代码 代码如下: <# 文件:xxx.ps1 用途:用于测试的xxx功能脚本 创建:2013-03-27,jb51.net 修改:2013-09-04,jb51.net #> 这是小编每次写脚本之

PowerShell脚本中控制Windows DNS服务的方法_PowerShell

PowerShell可以很方便的操作WMI,而DNS服务又提供了很好的WMI支持,所以,PowerShell可以通过操作WMI来操作Windows DNS服务. 1.获取DNS对象. 复制代码 代码如下: PS> $mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" 2.创建解析记录,使用CreateInstanceFromTextRepresentation方法. 复制代码 代码如下: PS>

PowerShell中获取当前运行脚本路径的方法_PowerShell

在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本.以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢? 很简单,通过内置的$MyInvocation变量: 复制代码 代码如下: $x = $MyInvocation.MyCommand.Definition 此时$x的值是当前运行中的脚本的绝对路径,再用Split-Path取它的父路径就可以了: 复制代码 代码如下: $x = Split-Path -Paren

PowerShell中使用正则表达式跨行匹配字符串的方法_PowerShell

本文介绍在PowerShell中当使用正则表达式时遇到多行字符串,如何进行跨行匹配的问题. PowerShell中使用正则表达式来匹配搜索字符串是非常常用的一个操作.但如果遇到一个字符串有多行时,常规的正则表达式,无法正常工作. 不信请看: 复制代码 代码如下: PS C:\Users\spaybow> "1111`n2222" -match "^1.*2$" False PS C:\Users\spaybow> "1111`n2222&quo