В пакетном режиме: только чтение имени файла из переменной с путем и именем файла

StackOverflow https://stackoverflow.com/questions/454670

  •  19-08-2019
  •  | 
  •  

Вопрос

В настоящее время я ищу способ взять переменную в пакетном режиме и проанализировать только имя файла.

Например, я передаю свой пакетный файл параметр -s из другого приложения, который впоследствии устанавливается в моей исходной переменной. Переменная исходного файла обычно содержит что-то вроде: C: \ Program Files \ myapp \ Instance.1 \ Data \ filetomove.ext.

Я предполагаю читать с конца переменной до первого " \ " и установить результат для новой переменной имени файла, но я не смог использовать " for / f " Командовать успешно.

Любая помощь будет высоко ценится!

Обновление: доступна только стандартная XP или Windows 2000/2003 ... (не может предполагать, что наборы ресурсов установлены).

Это было полезно?

Решение

Если он входит в качестве аргумента сценария, то есть% 1,% 2 и т. д., вы можете извлечь только имя файла и расширение в переменную, например, так:

set FILENAME=%~nxN

где N - индекс аргумента. Например, этот скрипт будет отображать только имя первого аргумента:

@echo off
set FILENAME=%~nx1
echo %FILENAME%

Другие советы

Немного улучшенная версия:

set FILENAME="%~nx1"

Дополнительная скобка гарантирует, что специальные символы, такие как & amp; ', не будут мешать во время выполнения пакета.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top