Будучи путь файла/папки, то проще позволить ОС решить для вас, чем того, чтобы разбить строку (если требуется только левая часть)
for %%a in ("D:\Work\WelCome\.") do echo %%~fa
В теоретическом случае, когда окончание точка может включать в фильме данные (но не слэша), это может быть преобразована в
rem The string with more data
set "myString=D:\Work\WelCome\.blah"
for %%a in ("%myString%[email protected]\..") do echo %%~fa
услуг для покупателей @
гарантирует, что всегда есть услуги для покупателей информации (этак предыдущая точка окончания дела все равно будет работать), то for
команда wi Посмотрите ссылку на файл, и нам просто нужно получить ссылку на родительскую папку.
Но Обратите внимание, что это только способ очистки ссылки на файл/папку, а не способ разделить строку на точный символ.
Для простого решения, чтобы разделить строку (или, чтобы быть более точными, удалите суффикс)
@echo off
setlocal enableextensions disabledelayedexpansion
rem The string
set "myString=D:\Work\WelCome\.test"
rem Do the split
set "myString=%myString:\.="&rem %"
set "myString=%myString%"
rem Show data
echo %myString%
Он заменяет расщепляющую подстроку команды конкатенации и комментарий начало (rem
). Так
set "myString=D:\Work\WelCome\.test"
превращается в
set "myString=D:\Work\WelCome"& rem test"
Таким образом, в следующей строке, когда переменная присваивается сама, ненужную часть будет удалена (скрыта rem
).
Это не работает для таких случаев, как 'D: \ Work \ WelCome \ .blah', который сохранил бы бла. Хотя я полностью согласен с вами, OP специально сказал, что раскол, который, как я думал, может означать возможных персонажей по пути – Monacraft
@Monacraft, вы, конечно, правы.Теперь в ответе говорится, что это не способ «разбить» строку. Спасибо –
Спасибо большое @MCND. Это сработало для меня ... –