Powershell的森岁版本是从1.0开始的,所以渣软不得已在ps后面加了孝誉个版本号,就这样沿用下来了,Powershell的脚本文件就是.ps1,模块文件就是.psm(Powershell
Module)。
『Shell』 =『图形用户界面(GUI)shell』 + 『命令行界面(CLI)shell』
批处理文件后缀名为 .bat 或 .cmd
脚本文件名为 .ps1 ,也支持CMD的脚本类型(但会通过 cmd.exe 去执行)
脚本文件后缀名为 .sh 或 .bash , 在Windows上可通过 git bash 等方式使用
用户登录后,默认处于家目录(主目录)
通过 变量名=值 的方式定义或修改变量,注意 = 两边不能有空格
通过 $变量名 的方式引用或输出变量
当执行某个命令时,如果是Shell 内部命令 ,则直接执行。否则依照 PATH 中包含的目录搜寻并执行该命令的可执行文件,称为 外部命令 。
ll 是 ls -l 的别名
默认为 cp -i
若已存在则会更新文件的时间
默认为 rm -i
默认为 mv -i
如果源文件和目标文件在同一目录中,那就是改名举穗
用于将多个文件保存为一个文件。
通常使用 -cvf ,如 tar -cvf test.tar test/ 。
通常使用正亮卜 -xvf ,如 tar -xvf test.tar -C /tmp
不能直接压缩目录键租,必须先用 tar 命令将目录打包,然后才能用 gzip 命令或 bzip2 命令对打包文件进行压缩。或使用 tar 指令打包并压缩 / 解压缩并解打包:
通过在打包指令前加 z 或者 j ,可以打包并压缩为 .tar.gz 或 .tar.bz2 格式,注意此时目标文件的名称建议以 .tar.gz 或 .tar.bz2 结尾。
解压缩与解打包同理。
如不输入账户名则默认切换到 root 账户
也可以单独添加/减少某种权限(如a+x表示为所有人添加执行权限)
结合两者使用可以达成进程总是运行的效果(不受 Ctrl+C 和 session关闭 影响):
kill 进程号 默认为 kill -15 进程号 ,程序会在释放资源后停止,因此可能会被阻塞
kill -9 进程号 会立刻终止进程,但可能会留下一些不完整的文件或状态,影响服务的再次启动
(或先 sudo chmod 777 /etc/rc.local 再用编辑器编辑)
如果是需要持续执行的任务,则startup.sh中的指令需要采用nohup或者服务
查看网络端口状态
查看指定端口状态,如端口未开放则无返回值
使用 | grep 通配符 可以筛选输出结果,如 ls | grep [ab]* 查询所有以a/b开头的文件
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
<# :cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 搜索/查找当前目录下(包括子文件夹里)的指定扩展名悔弊文件并修改为其他扩展名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo%#% +%$%%$%/%_% %z%
pause
exit
#>
$relation=@"
.png612904f4-->.png
.xls.zip-->.xls
"@
$change=New-Object -TypeName System.Collections.ArrayList
$arr=$relation.trim("`r`n") -split '[\r\n]+'
for($i=0$i -lt $arr.length$i++){
$brr=$arr[$i] -split '-->'
$reg=[regex]::replace($brr[0], '[\+\.\^\$\{\}\[\]\(\)]', {
param($m)
return '\'+$m.groups[0].value
})
$reg=$reg.replace('?','.').replace('*','.*')+'$'
$crr=@($reg, $brr[1])
[void]$change.add($crr)
}
$self=get-item -literal $env:self
$current=$self.Directory.FullName
$files=@(dir -literal $current -recurse|?{($self.Name -ne $_.Name) -and ($_ -is [System.IO.FileInfo])})
for($i=0$i -lt $files.length$i++){
如前模 for($j=0$j -lt $change.count$j++){
if($files[$i].Name -match $change[$j][0]){
$newname=$files[$i].Name -replace $change[$j][0],$change[$j][1]
$newfile=$files[$i].Directory.FullName+'\'+$newname
write-host ($files[$i].FullName+' --> '+$newname)
#move-item -literal $files[$i].FullName $newfile -ErrorAction SilentlyContinue
break
渣缓 }
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)