Как я могу подавить расширения имени файла в интерпретаторе командной строки и командных файлах? - PullRequest
1 голос
/ 07 августа 2010

Пример: у меня есть файл: FILENAME.EXT и я хотел бы извлечь FILENAME без .EXT Я хочу иметь возможность использовать имя файла без расширения для команды, которая принимает только имена файлов без расширений. У меня есть утилита с именем BCHECK, которая принимает в качестве аргумента имя файла без расширений. Использование BCHECK *. не работает, потому что все файлы имеют расширения .DAT или .IDX. Эти файлы постоянно переименовываются, поэтому мне нужно предоставить BCHECK новые имена файлов без необходимости вводить их вручную.

Ответы [ 2 ]

2 голосов
/ 07 августа 2010

Командой Unix для этого является basename.

1 голос
/ 07 августа 2010

Для пакетных файлов DOS вы можете посмотреть параметры здесь . Например, следующая команда отображает имя файла без расширения для параметра 0, который является именем пакетного файла.

echo %~n0

UPDATE:
Вот пример, который можно добавить в командный файл.

FOR %%f IN (*.dat) DO bcheck -y %%~nf

Эта команда будет запускать bcheck -y BASENAME для каждого файла с расширением .dat в текущем каталоге. Команда представляет собой цикл for, который содержит параметр %%f. Параметр %%f содержит полное имя файла. Для каждого файла, соответствующего *.dat, он будет запускать команду после ключевого слова DO. %%~nf указывает на использование базового имени (~n) из параметра (%%f).

...