Вывод команды dir / b в одну строку с добавлением DELIMITER Программирование пакетного файла - PullRequest
4 голосов
/ 27 января 2011

Я хочу вывод команды dir / b в одну строку, разделенную разделителем, например Outout из

dir c:\test 
file1
file2
file3
file4

Я хочу это как

file1;file2;file3;file4

Как это сделать в пакетном режимепрограммирования.

Ответы [ 2 ]

6 голосов
/ 27 января 2011
@echo off
setlocal enabledelayedexpansion enableextensions
set LIST=
for %%x in (*) do set LIST=!LIST!;%%x
echo %LIST:~1%

Это не приведет к именам файлов, которые содержат ;.Следующее делает, однако:

@echo off
setlocal enabledelayedexpansion enableextensions
set LIST=
for %%x in (*) do (
  echo %%x|findstr ";">nul 2>&1
  if errorlevel 1 (set LIST=!LIST!;%%x) else (set LIST=!LIST!;"%%x")
)
echo %LIST:~1%
0 голосов
/ 27 января 2011

Может быть, передать это через скрипт Python, такой как:

import sys
print ';'.join(sys.stdin.read().split())

В вашем командном файле:

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