powershell命令总结
2021-07-21 初稿
ps命令采用动词-名词的方式命名,不区分大小写。默认当前文件夹为当前路径./
。除去-match
使用正则表达式匹配外,其他都使用*
和?
通配符。
速查
管道命令
前一个的输出作为后一个的输入,使用$_表示传递的对象,用 | 连接
get-childitem "./" | foreach-object -process{
write-host $_
}
> #覆盖重写 dir > dir.txt 等价于dir | out-file dir.txt
>> #追加到原文本
2> #将错误输出
*> #将所有信息输出
遍历
foreach($a in dir "./caizihua*") {<code block>}
get-childitem -path "./*" [-filter] [-include] | where{$_ -match "<condition>"} | foreach-object [-begin{}] -process{}
string.split("\.,#") #string.split(".") string.split("[,.#]")
-replace -creplace(大小写敏感)
-eq -ceq(大小写敏感)
-like(允许正则表达式的模式匹配) -clike
-match(m模式匹配) -cmatch
-notmatch -cnotmatch
insert(pos,sting)
substring(A[,B]) #从A开始,一共B个(没有B,默认A之后所有) $_.name.substring(0,$_.length-4)
其他
# ps1脚本中调用powershell
powershell.exe -file <name>
# 复制
copy-item <origin> -destination <des>
# 移除
remove-item <file directory>
# 创建
new-item -path <path> [-tpye <file|directory>] [-name <string>] # ni "./../caizihua.txt"(在上一层目录创建)
#($_表示文件)
$_.name $_.basename
等待输入
$a=read-host "reminder" # reminder:
-eq -ne -gt -ge -lt -le -contains -notcontains
-not -and -or -xor(异或)
# 数字表示精度
"{0:N2}" -f $a #小数
348.00
"{0:D8}" -f $a #整数补齐
00000348
"{0:C2}" -f $a #当地货币
$348.00
"{0:P0}" -f $a #百分数
34,800 %
"{0:X0}" -f $a #十六进制
15C
转义
双引号""
变量代换字符转义,单引号''
按字面解释。抑音符`
是powershell特有的转义字符。
#输出字符串"a",但是如下会报错(因为前两个双引号会结合在一起,而a没有被任何双引号括起来)
$a=""a"" #错误
#正确写法如下,使用单引号‘按字面解释’,或者使用抑音符`转义所要字符"
$a='"a"'
$a="`"a`""
关于在双引号中括有双引号,单引号中扩有单引号,string中使用""
表示"
(''
表示'
)
#输出字符串"a"
$a="""a""" # 等价于$a="`"a`""
#输出字符串'a'
$a='''a''' # 等价于$a="`'a`'"。而使用$a='`'a'`'会报错,因为单引号是按字面意思解释,抑音符没用,a没有被任何单引号括起来
输出变量"i'm caizihua"
。
$a=" `"i`'m caizihua`" "
$a=' "i''m caizihua" '
$a=
@"
"i'm caizihua
"@ #关键词here-strings,其中引号按原意解释
get-childitem
快捷名dir
、ls
、gci
,默认访问当前目录./
。
Get-ChildItem
[[-Path] <string[]>] #指定路径,可代替部分filter和include的功能
[[-Filter] <string>] #筛选出与string相符合的文件或文件夹
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse] #递归遍历
[-Depth <uint32>] #递归遍历深度
[-Force]
[-Name] #只显示文件或文件夹名
[-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink]
[-Directory] #遍历文件夹
[-File] #遍历文件
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
例子:遍历当前文件夹下的jpg
文件。
get-childitem -path "./*.jpg"
get-childitem -path "./" -filter "*.jpg" #filter只能过滤一种类型。
使用-include
,可以筛选多种信息,使用 ,
隔开。使用-include
时,必须将-path
指定为目录下的文件,如./*
,或者使用-recurse
。
get-childitem -path "./*" -include "*.jpg","*.xml" #当前文件夹中所有的*.jpg和*.xml文件,
rename
快捷名ren
Rename-Item
-LiteralPath <String> #按字面解释
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]d
Powershell中有一些保留字符,如[ ] ` ' " * ?
。文件命中允许存在方括号[]
,使用普通的命名方式会报错。
自己输入文件名的方式,会报错。(单引号按字面解释,所以是bug?)
如下为使用tab缩进自动补全文件名的方式重命名,也会出错
参数-literalpath <path>
不会转义<path>
中的内容,所以如下会成功
rename-item -literalpath "./cai[zi]hua.txt" -newname "boogie.txt"
#文件名含有方括号[]时,可以加上这个参数
get-child-item "./*.jpg" | foreach-pbject -begin{$index=0} -process{
$n="caizihua.{0:D2}.jpg" -f $index; # -f 是格式化输出
$index++;
rename-item -literalpath $_ -newname $n
}
例子
powershell
字符串的处理
现在有很多caizihua.X.jpg
,其中XX
为格式整数1~99
,现在将其变成00~99
dir "./*" | where-object{$_ -match ".*\.jpg$"} | foreach-item -process{
$n=$_.name.split("\.");
$num=[convert]::toint32($n[1],10); #10表示十进制
$fn="caizihua.{0:D2}.jpg" -f $num
rename-item $_ -newname $fn
}
powershell命令总结的更多相关文章
- SharePoint 2013 PowerShell命令备份还原报错
错误截图: 文字描述: Restore-SPSite : <nativehr>0x80070003</nativehr><nativestack></nati ...
- 解决PowerShell命令行窗口中不显示光标的问题
不知道什么原因,在有些系统上打开PowerShell命令行窗口后,光标无法显示.这种情况在Windows Server 2008/2012.Windows 8/9/10上都出现过,估计是由于某些系统软 ...
- 【转】PowerShell入门(五):Cmd命令与PowerShell命令的交互
转至:http://www.cnblogs.com/ceachy/archive/2013/02/18/Call_Between_Cmd_And_PowerShell.html 单独使用一种脚本来完成 ...
- powershell命令大全
Name Category Synopsis ---- -------- -------- ac Alias Add-Content asnp Alias Add-PSSnapin clc Alias ...
- Jenkins: 执行 PowerShell 命令
Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...
- Azure按订阅,资源组,资源类型导出所有资源powershell命令
一般可以借助powershell命令来读取资源:例如:1, 读取某个订阅下的资源:$subscriptionID = "xxxxxxxx"Set-AzureRmContext $s ...
- 25个常用PowerShell命令总结
尽管Windows PowerShell已经出现一段时间了,习惯命令行的管理员可能对了解PowerShell功能的基础很感兴趣. 下面我们看看能由Windows PowerShell完成的最常见的25 ...
- 用于创建和管理 Azure 虚拟机的常用 PowerShell 命令
本文介绍一些可用于在 Azure 订阅中创建和管理虚拟机的 Azure PowerShell 命令. 若要获取特定命令行开关和选项的详细帮助,可以使用 Get-Help 命令. 有关安装最新版 Azu ...
- virtualbox+vagrant学习-2(command cli)-11-vagrant PowerShell命令
PowerShell 格式: vagrant powershell [-- extra powershell args] 这将在主机上打开PowerShell提示符,进入正在运行的vagrant机器. ...
- 通过PowerShell命令给Azure VM添加CustomScriptExtension
Azure的VM提供了一种管理工具叫Azure VM Extension.它实现了一些管理虚拟机所需要的重要功能,比如:重设密码.设置RDP参数.以及许多其他关键的功能,并且Azure VM一直在添加 ...
随机推荐
- 解决一次calico异常情况,pod之间访问pod ip不通
k8s 集群采用二进制安装,cni网络插件用calico通讯问题描述:发现有些pod不是很正常例如: ht13.node正常系统采样 [root@ht6 ~]# cat /etc/redhat-rel ...
- 2021.08.05 P2168 荷马史诗(哈夫曼树模板)
2021.08.05 P2168 荷马史诗(哈夫曼树模板) [P2168 NOI2015] 荷马史诗 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.k叉哈夫曼树如果子结 ...
- 【PostgreSQL】入门学习笔记
前言: 以下内容为前几天在备考PostgreSQL入门考试时候做的笔记,经过了全职的两天的奋战与实验,并最终顺利通过了PCA初级认证考试.现在把我学习的笔记分享给大家,文中有对应的思维导图图片可供 ...
- C# 滑动验证码|拼图验证|SlideCaptcha
使用背景: 关于滑动验证码的使用场所还是非常多的,如: 调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口 都需要加这个拼图验证.这里先上一下效果图吧(心中无码,自然高清). 话不多说,开撸! ...
- 08. 树莓派安装MySQL
1. 配置国内源(如果之前设置过可跳过步骤1~步骤2) vim /etc/apt/sources.list.d/raspi.list 2. 添加源 ,文档内原先的内容在开头加#号注释掉,加上下面这个 ...
- 『现学现忘』Git基础 — 19、Git中忽略文件
目录 1.忽略文件说明 2.忽略文件的原则 3..gitignore忽略规则 1.忽略文件说明 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们到本地版本库,通常都是些自动生成的文件. ...
- sa-token server认证逻辑
sa-token client登录逻辑
- 解决:Could not resolve dependencies for project xxx: Could not find artifact xxx
引言 运行A module,找不到B module的依赖报错.A.B module都在project中. 报错信息 [INFO] Scanning for projects... [INFO] [IN ...
- C# 编写一个简单易用的 Windows 截屏增强工具
半年前我开源了 DreamScene2 一个小而快并且功能强大的 Windows 动态桌面软件.有很多的人喜欢,这使我有了继续做开源的信心.这是我的第二个开源作品 ScreenshotEx 一个简单易 ...
- Kafka 基础概念及架构
一.Kafka 介绍 Kafka是⼀个分布式.分区的.多副本的.多⽣产者.多订阅者,基于zookeeper协调的分布式⽇志系统(也可以当做MQ系统),常⻅可以⽤于web/nginx⽇志.访问⽇志,消息 ...