Найти в Дзене
Talibanich

Аналог tail в Windows PowerShell

Сейчас многие используют различные AI-инструменты при программировании. Появилось множество различных полноценных AI редакторов кода: Cursor, Windsurf, Trae, Zed, Warp, Kiro и другие. Множество из них форки на базе VS Code. Сам я пользуюсь Cursor с 2024 года, но последний месяц перешел на Trae. Заметил, что во всех одна и та же проблема - многие модельки (сам я пользуюсь Claude Sonnet-4 (90% случаев), Gemini 2.5 Pro и Grok-4) при разработке из под Windows постоянно пытаются вызывать linux функцию tail. Чаще всего для анализа логов. Я пробовал прописывать в глобальных правилах курсора, в правилах самого агента, но ничего не помогает, модельки постоянно продолжают вызывать tail вместо Get-Content. Затем видят, что команды нет, перебирают другие функции и т.д. В общем устал я бороться с этим. Вот самое просто решение реализации tail для Windows. Нужно просто добавить функцию tail в профиль PowerShell. Как добавить в профиль: При открытии профиля, его может не быть, поэтому нужно нажать со

Сейчас многие используют различные AI-инструменты при программировании. Появилось множество различных полноценных AI редакторов кода: Cursor, Windsurf, Trae, Zed, Warp, Kiro и другие. Множество из них форки на базе VS Code. Сам я пользуюсь Cursor с 2024 года, но последний месяц перешел на Trae.

Заметил, что во всех одна и та же проблема - многие модельки (сам я пользуюсь Claude Sonnet-4 (90% случаев), Gemini 2.5 Pro и Grok-4) при разработке из под Windows постоянно пытаются вызывать linux функцию tail. Чаще всего для анализа логов.

Я пробовал прописывать в глобальных правилах курсора, в правилах самого агента, но ничего не помогает, модельки постоянно продолжают вызывать tail вместо Get-Content. Затем видят, что команды нет, перебирают другие функции и т.д. В общем устал я бороться с этим. Вот самое просто решение реализации tail для Windows.

Нужно просто добавить функцию tail в профиль PowerShell.

Как добавить в профиль:

  1. Откройте профиль PowerShell и введите:
    notepad $PROFILE
  2. Вставьте код функции и сохраните (будет ниже).

При открытии профиля, его может не быть, поэтому нужно нажать создать новый профиль.

Скрипт tail:

function tail {
param(
[Parameter(Mandatory=$true, Position=0)]
[string]$file,
[Alias("n")]
[int]$lines = 10,
[switch]$f
)
if ($f) {
Get-Content $file -Wait -Tail $lines
} else {
Get-Content $file -Tail $lines
}
}

ДЗЕН не поддерживает нормальное форматирование. Вот как выглядит скрипт:

-2

Особенности:

  • tail file.log — последние 10 строк
  • tail file.log -n 30 — последние 30 строк
  • tail file.log -f — следить за файлом (аналог tail -f в Linux)
  • tail file.log -n 50 -f — следить с выводом последних 50 строк


Проблемы и пути решения

Если после команды notepad $PROFILE появляется ошибка "Системе не удается найти указанный путь", то в PowerShell вводим:

if (!(Test-Path $PROFILE)) {
New-Item -Path $PROFILE -Type File -Force
Write-Host "Профиль создан: $PROFILE"
}

Затем вставляем скрипт выше.

Можно на всякий случай такую команду еще выполнить:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

И применяем изменения:
. $PROFILE
# Перезагрузите профиль