Список имен файлов / каталогов с путями относительно текущего каталога - PullRequest
0 голосов
/ 25 мая 2018

Мое постановление проблемы само по себе довольно ясно, что мне нужно сделать на самом деле.

На данный момент это работает для файлов в текущем каталоге, в котором я нахожусь.

for /r %%F in (*) do call set files=%%files%% "%%F"
echo %files% >> ..\..\TargetFolder\a\targetfile.config

НоЯ хочу переместить две папки вверх, а затем копаться в одной папке и есть несколько папок.Мне нужно имя всех этих папок.

Например, вот так:

for /r %%F in (..\..\TargetFolder\) do call set files=%%files%% "%%F"
echo %files% >> ..\..\TargetFolder\a\targetfile.config

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

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

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

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /F "tokens=*" %%d IN ('powershell -NoProfile -Command "Get-ChildItem -Path '..\..' -Directory | ForEach-Object { $_.FullName }"') DO (
    SET "THEDIR=%%~d"
    ECHO Do something with "!THEDIR!"
)

Если вы хотите максимально использовать загадочную нотацию и уменьшить понимание, псевдонимы и минимальные имена параметров могутбыть использованы.

FOR /F "tokens=*" %%d IN ('powershell -nop "ls -Path '..\..' -dir | %%{$_.fullname}"') DO (
    SET "THEDIR=%%~d"
    ECHO Do something with "!THEDIR!"
)
0 голосов
/ 25 мая 2018

Хорошо, чтобы указать (абсолютный или относительный) корневой каталог, отличный от текущего, для for /R, сделайте это, например:

for /R "..\..\TargetFolder" %%F in (*) do echo %%~F

Чтобы получить список каталогов, а не файлов,добавьте параметр /D:

for /D /R "..\..\TargetFolder" %%F in (*) do echo %%~F

Чтобы получить чистые имена файлов / каталогов, используйте %%~nxF вместо %%~F.


Чтобы получить файлы, расположенные внепосредственные потомки корневого каталога:

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