例えば複数のポートがあるときに毎回ポート番号を調べるのが面倒くさい為、いつも上から◯番目のポート番号を取得するようにしたいと思い、記述した。
# adb devices -l の結果を取得
$adbOutput = adb devices -l
# 正規表現で "abc" から始まる tranceport:数字 を探して数字を抽出
$pattern = "abc.*tranceport:(\d+)"
foreach ($line in $adbOutput) {
if ($line -match $pattern) {
$number = $matches[1]
Write-Output $number
}
}
@echo off
setlocal enabledelayedexpansion
rem コマンドの設定
set "adbCommand=adb devices -l"
rem 正規表現の設定
set "pattern=^abc.*tranceport:[0-9][0-9]*"
rem 実行するコマンドの設定(ここでは adb -t 数字 root)
set "command=adb -t !number! root"
rem adb devices -l の出力を取得して処理
for /f "tokens=*" %%A in ('!adbCommand!') do (
set "line=%%A"
rem 正規表現に一致する行を検索
echo !line! | findstr /r "!pattern!" >nul
if not errorlevel 1 (
rem tranceport: の後の数字を抽出
for /f "tokens=2 delims=:" %%B in ("!line:tranceport=tranceport:!") do (
set "number=%%B"
rem 設定したコマンドを実行
call !command!
)
)
)
endlocal
powershell
# 指定するフォルダパス
$folderPath = "C:\path\to\your\folder"
# フォルダ内で最も更新日が新しいテキストファイルを取得
$latestFile = Get-ChildItem -Path $folderPath -Filter "*.txt" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
if ($latestFile -ne $null) {
# 特定の文字列を設定
$searchString = "特定の文字列"
# ファイルの内容を読み込んで特定の文字列の出現回数をカウント
$content = Get-Content -Path $latestFile.FullName
$count = ($content -join "`n") -split [regex]::Escape($searchString) | Measure-Object | Select-Object -ExpandProperty Count
$count = $count - 1 # 最初の分割で余分な要素ができるため1を減らします
Write-Output "ファイル: $($latestFile.Name)"
Write-Output "文字列 '$searchString' の出現回数: $count"
} else {
Write-Output "フォルダ内にテキストファイルが見つかりませんでした。"
}