Пунктирные символы в выводе cmd файла - PullRequest
0 голосов
/ 15 января 2019

Мне нужно записать в файл список папок и подпапок из заданной папки. Я использую эту команду:

dir /s /b /o:n /a:d > folderlist.txt

Пунктирные символы отсутствуют в выходном файле. Вывод команды содержит также пунктирные символы, когда я проверяю его в cmd. Я не использую PowerShell.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Если tree решение вам не подходит, вы можете запустить cmd с поддержкой юникода cmd /u. Или измените кодовую страницу на UTF внутри командного файла с помощью chcp 65001.

0 голосов
/ 15 января 2019

Прежде всего, необходимые символы не доступны по умолчанию, пожалуйста, запустите: chcp 65001 - это изменит кодировку на UTF-8.

Затем вы можете запустить свою команду: dir /s /b /o:n /a:d > folderlist.txt.

Если вам нужно просмотреть вывод в cmd. Пожалуйста, измените шрифт по умолчанию на Lucida Console.


До того, как ОП выяснил, что он после, мне удалось придумать следующее:

Предполагая, что ваша файловая система имеет приемлемый размер, вы можете использовать команду tree, которая создаст для вас отступ в виде древовидной структуры. Вы можете сказать, чтобы он использовал символы ASCII также с флагом /A. Попробуйте!

cmd: tree /A ["directory path"] > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

/A - символы ASCII вместо расширенных символов.

/F - отображать имена файлов в каждой папке.

Обратите внимание, что "directory path" является необязательным, но похоже, что вы хотите использовать его в этом случае (укажите путь к вашей начальной папке).

Если вы не можете использовать tree (по простым причинам вывода) - вы можете использовать:

DIR YOUR_DRIVE_LETTER:\ /B /S > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

/B -flag = полный путь вместо относительного пути.

powershell: Get-ChildItem | tree > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...