Передача усеченного имени файла в другой командный файл - PullRequest
0 голосов
/ 17 июня 2020

У меня есть куча файлов в папке с именем cores. Файлы имеют такие имена, как c_000223 ~ a, c_120302 ~ a, et c.

У меня есть командный файл с a for l oop в нем. Он должен go пройти через каждый файл ядра и отправить его в другой командный файл с именем RunMSFlux для обработки. Проблема в том, что RunMSFlux не принимает имена файлов ядра. Ему не нужен 'c_' в начале, просто 000223 ~ a, 120302 ~ a и т. Д.

Я не могу изменить RunMSFlux, чтобы он принимал 'c_', поскольку он читается - только. Кроме того, я не хочу переименовывать файлы ядра, поскольку они используются другими программами вне моего командного файла. Поэтому мне нужен способ убрать c_ в начале имени файла, а затем передать его в RunMSFlux.

Вот мой командный файл:

    @echo on
    set bindirectory=K:\Physics\bin\1112\
    set coredirectory=K:\Physics\cores\
    set quiet=yes

for %%f in ( %coredirectory%* ) do (

    call %bindirectory%\RunMSFlux.bat %%f measbu measbu
)

Есть ли способ заставить командный файл сначала удалить c_ перед передачей имени файла в for l oop? Или, возможно, я мог бы создать файл .txt с именами усеченных файлов ядра в них и пропустить через него скрипт go построчно и передать эти имена в for l oop?

1 Ответ

0 голосов
/ 19 июня 2020

После долгих воплей и скрежета зубов, я верю, что наконец-то нашел что-то, что работает:

@echo on
set bindirectory=K:\Physics\bin\1112\
set coredirectory=K:\Physics\cores\
set quiet=yes

for /F "tokens=1* eol=_ delims=_" %%g in ( 'dir /A:-d /B %coredirectory%' ) do (

call %bindirectory%RunMSFlux.bat %%h measbu measbu 
)

Токены, eol и delims удаляют c_ в именах файлов, перечисленных в 'dir / A: - d / B 'перед передачей усеченного имени файла в RunMSFlux.bat внутри l oop.

...