Пакетный скрипт Удаление символов из переменной внутри цикла FOR - PullRequest
0 голосов
/ 20 сентября 2011
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (*.*) DO (
 SET var=%%A
 ECHO !var:~0,-4!
)

Поскольку мы выполняем итерацию переменной в цикле FOR, вы должны использовать ! вокруг переменной, однако в сочетании с методом :~#,-# для удаления символов из конца переменной это не брать.

В моем примере мы просто удаляем расширение из имени файла. Я понимаю, что вы можете использовать %%~nA, чтобы просто получить имя файла, но это всего лишь пример использования.

Есть ли способ сделать это внутри цикла FOR? Может быть, другой метод, чем я использую?

1 Ответ

2 голосов
/ 20 сентября 2011

Может произойти сбой, если за set var=%%A.
есть скрытые пробелы. Тогда вы удаляете только пробелы, поэтому лучше использовать

set "var=%%A"

Он не зависит от скрытых пробелов, даже последние символы игнорируются за последней цитатой.

Но, возможно, ваша проблема совершенно другого типа?

...