powershell中排序文件|linux下如何批量移动某目录下按日期排序的所有文件夹下部分文件

『壹』 PowerShell 基本语法及常用命令

PowerShell常用命令: 一 Get类 1.Get-Command : 得到所有PowerShell命令,获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。 包括Cmdlet、Alias、Function。 2.Get-Process : 获取所有进程 3.Get-Help : 显示有关 Windows PowerShell 命令和概念的信息 4.Get-History : 获取在当前会话中输入的命令的列表 5.Get-Job : 获取在当前会话中运行的 Windows PowerShell 后台作业 6.Get-FormatData : 获取当前会话中的格式数据 7.Get-Event : 获取事件队列中的事件 8.Get-Alias : 获取当前会话的别名 9.Get-Culture :获取操作系统中设置的当前区域性 12.Get-Member : 获取对象的属性和方法。 13.Get-Random : 从集合中获取随机数或随机选择对象 14.Get-UICulture : 获取操作系统中当前用户界面 (UI) 区域性设置 15.Get-Unique : 从排序列表返回唯一项目 16.Get-Variable :获取当前控制台中的变量 17.Get-EventLog : 获取本地或远程计算机上的事件日志或事件日志列表中的事件 18.Get-ChildItem : 获取一个或多个指定位置中的项和子项 19.Get-Content : 获取指定位置的项的内容 20.Get-ItemProperty :获取指定项的属性 21.Get-WmiObject : 获取 Windows Management Instrumentation (WMI) 类的实例或可用类的相关信息 22.Get-Location :获取当前工作位置的相关信息(如:F:\Users\TaoMin ) 23.Get-PSDrive:获取当前会话中的 Windows PowerShell 驱动器 24.Get-Item:获取位于指定位置的项 25.Get-Process :获取在本地计算机或远程计算机上运行的进程 26.Get-Service : 获取本地或远程计算机上的服务 27.Get-Transaction :获取当前(活动)事务 28.Get-ExecutionPolicy :获取当前会话中的高洞执行策略 二.Set类 (set类命令一般都含有参数) 1.Set-Alias : 在当前 Windows PowerShell 会话中为 cmdlet 或其他命令元素创建或更改别名(替代名称) 2.Set-PSDebug :打开和关闭脚本调试功能,设置跟踪级别并切换 strict 模式 3.Set-StrictMode :建立和强制执行表达式、脚本和脚本块中的编码规则 4.Set-Date :将计算机上的系统时间更改为指定的时间 5.Set-Variable :设置变量的值,如果该变量还不存做高在,则创建该变量 6.Set-PSBreakpoint :在行、命令或者变量上设置断点 7.Set-Location :将当前工作位置设置为指定的位置 8.Set-Item :将项的值更改为命令中指定的值 9.Set-Service :启动、停止和挂起服务并更改服务的属性 10.Set-Content :在项中写入内容或用新内容替换其中的内容 11.Set-ItemProperty :创建或更改某一项的属性值 12.Set-WmiInstance :创建或更新现有 Windows Management Instrumentation (WMI) 类的实例 13.Set-ExecutionPolicy :更改 Windows PowerShell 执行策略的用户首选项。 三.Write类 1.Write-Host : 将自定义输出内容写戚胡枯入主机。类似于.net的 write()或者writeline()功能 2.Write-Progress :在 Windows PowerShell 命令窗口内显示进度栏 3.Write-Debug :将调试消息写入控制台 4.Write-Verbose:将文本写入详细消息流 5.Write-Warning :写入警告消息 6.Write-Error : 将对象写入错误流 7.Write-Output : 将指定对象发送到管道中的下一个命令;如果该命令是管道中的最后一个命令,则在控制台上显示这些对象 8.Write-EventLog :将事件写入事件日志 PowerShell变量、常量、数组: 一、变量 PowerShell的变量无需预定义,可直接使用。当使用一个变量时,该变量被自动声明。 变量以 $ 符号开头。如: $a PowerShell普通变量: 1.给变量赋值: 方式一: $a = "This is a string" $b = 123 $c = 0.125 方式二: Set-Variable var 100 Set-Variable var1 ”test“ Set-Variable va2 800 2.获取变量值 get-variable var #获取单个变量值 get-variable var* #获取多个变量值 3.清空变量值 clear-variable var 4.删除变量 remove-variable var 5.连接两个字符串变量 $a = "This is the 1st string" $b = "This is the 2nd string" a + " and " + $b $c 结果:This is the 1st string and This is the 2nd string 6.变量的方法 $date = Get-Date #获取当前时间 $date.AddDays(3) #当前时间加三天 PowerShell特殊变量: 强制指定变量类型: 一般不需要为PowerShell的变量指定类型。但是也可以强制指定变量类型。 如:[int] $b = 5 常见变量类型如下: 二、常量 三、数组 PowerShell注释用法: PowerShell运算符用法: 运算符如下: 1.算术二元运算符: 2.赋值运算符 3.逻辑运算符 PowerShell函数用法: 用法一如下:(函数中改变变量值并不影响实际值) 执行结果: 用法二如下:(函数中变量值的改变要用$Script:var的形式) 执行结果: PowerShell条件控制的用法: 一、循环类 1.foreach的用法 用法一如下: 执行结果: 用法二如下:直接获取管道数据 执行结果: 2.while的用法 用法一如下: n -le 5) #当 n $n++ } 执行结果: 用法一如下: n n -ne 3) #当$n<>3时进行循环操作 执行结果: 用法一如下: n n -gt 3) #当$n>3时停止操作 执行结果: 二、分支类 1.if用法 if语法结构如下: 用法如下: 执行结果: 2.switch用法 switch语法结构如下: 用法一如下: switch(表达式) 执行结果: 用法二如下:switch -casesensitive (表达式)表示区分大小写 执行结果: It's Monday 用法三如下:switch -regex(表达式)表示正则表达式匹配 执行结果:字母+数字,匹配为:day6 用法四如下:switch -regex(表达式)表示正则表达式匹配 表达式可为数组 执行结果:字母+数字,匹配为:day5 用法五如下:switch -wildcard (表达式)表示通配符匹配 执行结果:day2,匹配为:day2 三、跳转类 1.break用法:break语句出现在foreach、for、while、switch等结构中时,break语句将使windows powershell立即退出整个循环。 用法如下: 执行结果: 2.continue用法:continue语句出现在foreach、for、while等循环结构中时,continue语句将使windows powershell立即退出某一次轮循环,并继续下一轮循环。 用法如下: 执行结果: PowerShell抛出异常的Throw用法: 用法如下: 返回结果:danger 及详细错误信息 PowerShell获取出错信息的用法: 用法如下: function one { get-process -ea stop #-ea定义错误发生以后该如何继续执行,意同-ErrorAction get-childitem ada -ErrorAction stop #此处有错误 路径ada不存在 get-process -ErrorAction stop } 返回结果:报出错误信息 PowerShell单步调试的用法: 用法如下: 执行结果:会出现逐步调试的对话框 本文转自 https://www.cnblogs.com/feng-zi/p/9935874.html

『贰』 linux下如何批量移动某目录下按日期排序的所有文件夹下部分文件

#!/bin/bashforDIRin`ls你的原始目录路径`domkdir-p/新目录路径/$DIRmv原始目录路径上层目录/$DIR/{01..05}/新目录路径/$DIRdone

『叁』 用批处理对文件的排序和windows的默认排序不一致,批处理的代码是DIR *.*  /B >

借助POWERSHELL可以在BAT中按数碰游字大小排序文件,如果文件名中有字母,则此方法不适用

set"SourDir=E:DCOPYest"for/f桥纳"delims="%%ain('powershell-c"dir%SourDir%-Recurse|sort-object{[int]($_.basename.split('.')[0])}|foreach-object{$_.fullname}"'笑消销)do(echo%%a)

『肆』 批处理文件前加序号,如何不改变原本文件排序

批量在文件名前面增加数字序号的方法:

第一步,下载好优速文件批量重命名工具后安装使用。点击“文件重命名”功能进入内页后,再点击【添加文件】按钮,将需要加序号的文件批量导入到软件中。

『伍』 bat批量把文件名添加到文本内容的每一行,按照文件名排序

这个放excel里处理都可以啊

『陆』 文件名前批量、随机、添加序号(批处理.bat)

试试VBS 脚本,复制以下内容,新建记事本。粘贴后保存:类型选所有,文件名:文件名前批量.vbs,编码选择:ANSIdim fnew,newf,arrSet fso = CreateObject("Scripting.FileSystemObject")Set oFolder = fso.GetFolder(fso.GetFile(Wscript.ScriptFullName).ParentFolder.Path)Set oFiles = oFolder.Filesss= oFiles.countFor Each oFile In oFilesif fso.GetExtensionName(oFile.Path) <> "mp3" then ss=ss – 1nextarr = split(RndNub(ss),",")newf = 0For Each oFile In oFilesif fso.GetExtensionName(oFile.Path) ="mp3" theni = arr(newf)oFile.name = left("0000", 4-len(i)) & i & "_" & oFile.namenewf = newf + 1end ifnextmsgbox "Done!",64,"TXT"Function RndNub(ReqNub)dim rdsRandomizeSet myList=CreateObject("System.Collections.ArrayList")for i = 0 to 9999myList.add(i)nextfor i=0 to ReqNub-1index = Int((10000-i) * Rnd)rds =rds & mylist.Item(index) & ","myList.RemoveAt(index)nextRndNub = rdsEnd Function

『柒』 Powershell企业应用 - 第05章 编写Powershell日志系统

我们在进行企业脚本执行的过程中,对于执行的输出,往往需要将其记录下来用作参考或者留存记录作为合规的凭据。

文本日志文件,CSV文件以及Windows日志是我们可以用来留存记录的数据源。

文本日志文件一般是.txt 或者 .log 扩展名的文本文件,我们让脚本在执行的过程中向里写入输出信息。

通过以下命令创建文本日志文件

使用Powershell写入信息到文本日志文件 在脚本中,我们可以使用Add-Content命令向日志文件中输出脚本执行的信息。

CSV日志文件本质也是文本文件,但可以在Excel中打开,更加方便进行筛选和排序。

通过以下命令创建CSV日志文件

向CSV日志文件写入信息

对于CSV文件,我们需要先写入文件每列的表头信息,用逗号进行分隔段蠢。 表头信息范例: username, time, action 这样我们就定义了CSV文件的三个表头。 然后写入的日志信息应与表头相对应,也用逗号进行分割。 日志信息范例: Leo Zhang, 20211116 12:00:00 , Reboot Computer CSV文件可以使用Microsoft Excel打开,对其中的数据可以像操作握罩陪xls文件一样,进行排序和筛选等操作。

在脚本中,我们仍然使用Add-Content命令向CSV日志文件中输出脚本执行的信息。

使用Powershell写入信息到文本日志文件

我们可以在脚本中,将日志输出写入到闷渗Windows日志中,通过Windows事件管理器进行查看,可以进行更加细致颗粒度的查找和过滤。如果结合ManageEngine的EventsLog Analyzer这样的工具,可以收集所有服务器的日志进行统一管理和归档,帮助我们更好的管理日志以及满足合规性的要求。

创建Windows日志 我们可以使用New-Eventlog来创建Windows日志的日志本,专门用来存储来自我们脚本的日志信息。

New-Eventlog命令的参数: -Logname: Windows日志的名称。 -Source: 日志的来源


赞 (0)