Пакет: удаление расширения файла

У меня есть следующий пакетный скрипт из Википедии:

@echo off for /R "C:\Users\Admin\Ordner" %%f in (*.flv) do ( echo %%f ) pause 

В for-loop все файлы с расширением flv получают эхо, но я хочу, чтобы некоторые действия выполнялись с файлом (-ами), где мне нужен один раз файл без расширения и один раз с расширением. Как я мог получить эти два?

Я искал решения, но не нашел их. Я настоящий новичок в партии …

Вы можете использовать %%~nf чтобы получить имя файла только так, как описано в ссылке for :

 @echo off for /R "C:\Users\Admin\Ordner" %%f in (*.flv) do ( echo %%~nf ) pause 

Доступны следующие параметры:

 Переменная с модификатором Описание

 % ~ I ​​Увеличивает% I, который удаляет любые окружающие 
                         кавычки ("").
 % ~ fI Расширяет% I до полного имени пути.
 % ~ dI Увеличивает% I только на букву диска.
 % ~ pI Увеличивает% I только до пути.
 % ~ nI Увеличивает% I только до имени файла.
 % ~ xI Расширяет% I только до расширения файла.
 % ~ sI Расширяет путь, чтобы содержать только короткие имена.
 % ~ aI Увеличивает% I до атрибутов файла файла.
 % ~ tI Увеличивает% I до даты и времени файла.
 % ~ zI Увеличивает% I до размера файла.
 % ~ $ PATH: Я просматриваю каталоги, перечисленные в среде PATH 
                         переменная и расширяет% I до полного имени 
                         первый найден.  Если имя переменной среды 
                         не определено или файл не найден при поиске,
                         этот модификатор расширяется до пустой строки.    

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

 %var:~0,-4% 

-4 означает, что последние 4 цифры (предположительно .ext ) будут усечены.

Я также незнаком с windowsми cmd, но попробую:

 echo %%~nf 

Это очень поздний ответ, но я придумал это, чтобы решить определенную проблему, с которой я столкнулся с DiskInternals LinuxReader, добавляя «.efs_ntfs» к файлам, которые он сохранил в каталогах, отличных от NTFS (FAT32):

 @echo off REM %1 is the directory to recurse through and %2 is the file extension to remove for /R "%1" %%f in (*.%2) do ( REM Path (sans drive) is given by %%~pf ; drive is given by %%~df REM file name (sans ext) is given by %%~nf ; to 'rename' files, move them copy "%%~df%%~pf%%~nf.%2" "%%~df%%~pf%%~nf" echo "%%~df%%~pf%%~nf.%2" copied to "%%~df%%~pf%%~nf" echo. ) pause 
  • чтение определенного файла из sdcard в android
  • Как вставить символы в файл с помощью C #
  • Должен ли я хранить мои изображения в базе данных или папках?
  • Чтение текстового файла с сервера на Android
  • Откройте файл с помощью Блокнота в C #
  • Открытый файл PDF для Android
  • Независимые от платформы пути в Java
  • Является ли HashMap streamобезопасным для разных ключей?
  • Замена строк в пакетном файле
  • Загрузка изображений с использованием Node.js, Express и Mongoose
  • командный файл: список rar-файла в определенной папке и запись результата в текстовый файл
  • Давайте будем гением компьютера.