Я делаю команду, например, например

разархивируйте -l filename.zip

и я хочу красиво отобразить вывод на HTML-странице, но кажется, что вкладки не отображаются, а столбцы не выстраиваются.

Может кто-нибудь предложить хороший способ сделать так, чтобы этот вывод был красиво представлен в HTML?

1 ответ1

0

Предполагая, что вы используете Windows и более новую версию, вы можете сделать это с помощью PowerShell. Следующая команда создает таблицу HTML из списка файлов текущего каталога и сохраняет ее в файле Output.html:

powershell "$output = (dir); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split(' ',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"

Попробуйте запустить эту команду в командной строке Windows. Вы должны быть в состоянии вставить его в подсказку. Обратите внимание, что он создаст или заменит любой файл с именем Output.html в текущем каталоге. Естественно, необходим более продвинутый код, чтобы все выглядело красиво и в нужных вам столбцах.

Обратите внимание на приведенный выше фрагмент кода, в котором написано $_.Split(' ') . Эта часть решает разделитель для создания столбцов из вывода команды. Приведенный выше код использует пробел. Если вы действительно хотите использовать табуляцию вместо пробела, используйте обратную галочку t:

$_.Split('`t')

Результат для разделения на вкладки таков:

powershell "$output = (dir); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split('`t',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"

Чтобы использовать этот метод с другой командой (кроме dir), просто замените dir другой командой:

powershell "$output = (unzip -l filename.zip); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split('`t',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"

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