Как получить доступ только к одному дополнительному подкаталогу и получить доступ к их файлам с помощью пакета? - PullRequest
0 голосов
/ 17 июня 2019

Я обычно программирую на Java, но по причинам, которые я не буду указывать, я пытаюсь решить проблему с использованием пакетных сценариев.У меня есть пара каталогов, которые содержат подкаталоги дней.Например, у меня может быть папка с именем «январь», и внутри этой папки находятся папки на каждый день (1, 2, 3 и т. Д.), А внутри этих папок находятся текстовые файлы, к которым мне нужен доступ.Однако эти данные постоянно обновляются, поэтому у меня никогда не бывает заданного количества папок.Мне интересно, как я могу получить доступ ко всем «дневным» папкам через пакетный скрипт?

Я пытался перебрать каталоги и выяснить, какие папки находятся внутри общей папки (то есть: папка месяца)используя команды /d /r в цикле for.Однако это только дает мне файлы в каталоге.

Некоторые фрагменты кода, которые я пробовал:

FOR /D /r %%P IN (..\JAN\Processed\) DO (
copy filex.txt ..\JAN\Processed\%%~nxP
/* run a correlation program using the file located in the directory specified with the copy command */
)

Я также пытался использовать

for /r "..\JAN\Processed\" %%P in (.) do (/*similar to code above*/)

Когда я запускаю этот код, он получает доступ ко всем каталогам, а не только к тем, которые мне нужны (потому что у меня есть дополнительные каталоги в папках 'day').

Для проверки своего кода я также использовалECHO много командует, просто чтобы посмотреть, действительно ли он находит нужные мне каталоги, поставив echo %%~nxP, но, похоже, он не находит каталоги, к которым я хочу получить доступ.Это просто вернет ECHO IS ON/OFF.Ваша помощь очень ценится.

1 Ответ

1 голос
/ 18 июня 2019

Получите for /d, чтобы получить подпапки (только глубина = 1), и секунду, вложенную для получения файлов в этой подпапке:

@echo off
for /d %%P in ("..\JAN\Processed\*") do (
  for %%F in ("%%~fP\*") do echo %%~fF
)
...