Мне нужен командный файл, который предоставляет список всех моих файлов в моей папке, которые разделены ";" в одном файле.

Как список моего каталога:

dir1
dir2
 a.txt
b.sql
c.html

Файл экспорта должен выглядеть так:

a.txt; b.sql; c.html

Я уже использую: dir /a /b /-p /0:gen >list.txt но это имя каталога, и я не могу разделить их точкой с запятой :(

Пожалуйста помоги

2 ответа2

2

Вы можете использовать этот простой командный файл:

@echo off
setlocal enabledelayedexpansion enableextensions
set LIST=
for %%F in (*) do set LIST=!LIST!;%%F
>list.txt echo %LIST:~1%

Это просто перебирает все файлы (кроме каталогов) и добавляет к переменной, которая печатается в конце.

Более сложный способ сделать то же самое с дополнительным преимуществом - вы можете отменить его на полпути и при этом сохранить информацию до сих пор.

@echo off
set FIRST=1
for %%F in (*) do (
  if defined FIRST (
    set FIRST=
    <nul set /P X=%%F
  ) else (
    <nul set /P X=;%%F
  )
)
1

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

dir /A-D /ON /B > list.txt

нота:

/A-D: minus Directories
/ON: Order by Name (not sure if you need this, but typically helpful)
/B: Bare format (e.g. just the names, no dates etc.)

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