Я создал небольшой командный файл для Windows, и у меня возникла небольшая проблема:
Я определил переменную, которая содержит строку, путь к исходному файлу:
D: \ git_repos \ ALM_Sandboxs \ Sensor_Config \ StateManagement \ ssm_state.cpp
Я хочу извлечь путь без имени файла:
D: \ git_repos \ ALM_Sandboxs \ Sensor_Config \ StateManagement \
Поскольку путь может измениться, как и имя файла, у меня возникли трудности с этим. Есть много способов, но я не смог использовать ни один из них:
Первым будет подсчитывать символы имени файла:
set NumberOfCharacter
и до
set FilePath=%FilePathTemp2:~,%NumberOfCharacter%%
Но это не работает. Я могу использовать только номер с этим синтаксисом:
set FilePath=%FilePathTemp2:~,-18%
==> Это работает, но я бы хотел прочитать 18 из переменной
Я прочитал, что пакетный интерпретатор не может разрешить пары%, поэтому я попытался
for /l %%x in (1,1,%strlength%) do set %FilePathTemp2%=%FilePathTemp2:~,-1%
Это тоже не работает, потому что цикл for, похоже, не способен изменить FilePathTemp2 с глобальной областью действия.
Буду благодарен за любую помощь