我们有以下unix命令:
/usr/bin/tail -n 1 %{path} | grep --silent -F "%{message}" && rm -f %{path}%
此:
/usr/bin/tail -n 1 %{path}
获取path
变量引用的文件中的最后一行
| grep --silent -F "%{message}"
将输出传递给另一个命令grep
,该命令检查上一个命令的输出是否等于message
的值
&& rm -f %{path}%
如果值相等,则删除path
所提及的文件以上行位于配置文件中,允许对底层操作系统进行调用。
我想复制windows上的functionalirty。 我试过这个:
command => 'powershell -Command "& {Get-Item $args[0] | ? { (Get-Content $_ -Tail 1).Contains($args[1]) }| Remove-Item -Force}" "'%path%'" "'%message%'"'
抛出此错误:
Error: Expected one of #, {, } at line 15, column 131 (byte 498)
第15行是配置文件中包含上述内容的行。
由于
答案 0 :(得分:2)
PowerShell解决方案:
$path = 'C:\path\to\your.txt'
$message = 'message'
Get-Item $path | ? { (Get-Content $_ -Tail 1).Contains($message) } | Remove-Item -Force
如果要从命令行运行它,请按以下方式调用它:
powershell -Command "& {Get-Item $args[0] | ? { (Get-Content $_ -Tail 1).Contains($args[1]) } | Remove-Item -Force}" "'C:\path\to\your.txt'" "'message'"
答案 1 :(得分:1)
您可以使用tailhead.bat(纯批处理脚本实用程序)来显示文件的持续时间/文字行。而不是Grep
您可以使用findstr
或{{1 }}:
find