2

Можно ли в Windows регистрировать каждую команду, которую я набираю, и вывод, который я вижу на консоли? Иногда я обнаруживаю, что хочу посмотреть, что я сделал 2 часа назад, просто чтобы убедиться, что я правильно ввел определенный параметр.

3 ответа3

5

Да. Вы можете использовать Start-Transcript и Stop-Transcript .

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

$transcriptDir = Join-Path ([Environment]::GetFolderPath("MyDocuments")) PowerShellTranscripts
if (-not (Test-Path $transcriptDir))
{
    New-Item -Type Directory $transcriptDir
}
$dateStamp = Get-Date -Format ((Get-culture).DateTimeFormat.SortableDateTimePattern -replace ':','.')
try 
{
    Start-Transcript "$transcriptDir\Transcript.$dateStamp.txt"
}
catch [System.Management.Automation.PSNotSupportedException]
{
    # ISE doesn't allow transcripts.
    Write-Host "No transcript. Not supported in this host."
} 
0

Примечание: я подготовил этот ответ, а затем понял, что вы, вероятно, спрашиваете конкретно о командах, выполняемых в PowerShell. Вместо того, чтобы стирать мои усилия, я собираюсь опубликовать статью на случай, если это поможет кому-то, кто хочет сделать то же самое в DOS. Немного прочитав, похоже, что @dangph, вероятно, дал правильный ответ для PowerShell.


Чтобы записать команды в файл:

doskey /history >> commands.log чтобы добавить историю команд в журнал.

Эта страница подробно объясняет, но в двух словах вы можете передать ваши команды в файл по выбору, прежде чем закрывать эмулятор DOS. Вам не придется делать это до тех пор, пока вы не закончите (не уверен, что буфер вступает в игру с большим объемом команд)

Чтобы записать вывод команды в файл:

Вы, вероятно, хотели бы что-то вроде ...

dir >> a.txt | type a.txt . Как упоминалось в этом ответе, вы записываете вывод команды в файл, а затем распечатываете содержимое файла, но я думаю, что это соответствует требованиям и будет автоматическим, если вы будете использовать его с каждой командой. Если вы немного подправите, я думаю, что вы могли бы изменить также, чтобы написать команду и вывод .

Возможно, кто-то может улучшить или предложить более удобное для пользователя решение для одновременного выполнения (добавления команды и результатов) по мере выполнения операторов.

0

Что не так с (История-счет 1000).CommandLine как собственное решение PowerShell.

Для регистрации всего в командной строке (в целях безопасности) я бы использовал

HKEY: HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit\
RegEntry: ProcessCreationIncludeCmdLine_Enabled 
Value: 1 (DWORD)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .