Переменная длина подстроки списка каталогов CMD
setlocal
set "s=DIR D:\MyFolder /S /Q ^|FIND /i "Owner" ^|FIND /v /i "sample" ^|findstr /m /i "\.mkv$""
for /f "Tokens=5,6*" %%a in ('%s%') do >>%tmp%\list.txt echo %%a %%b %%c
wscript "C:\my.vbs"
Эй, ребята, у меня есть этот код. Получение mkv файлов, принадлежащих Владельцу из MyFolder. И показывает их через VBS.
И это мои файлы.
The.Leftovers.S01E02.720p.BLABLABLA
Falling.Skies.S04E03.720p.BLABLABLA
Я хочу ограничить длину до 20 букв. Или снимите перед 720p
The.Leftovers.S01E02
Falling.Skies.S04E03
Я прочитал несколько руководств, но не смог импортировать их в токены for /f. Можно ли это сделать? Если да, то как?
1 ответ
Решение
Вот пакетный файл, который будет перечислять содержимое текущего каталога, обрезая все имена до 20 символов.
SETLOCAL ENABLEDELAYEDEXPANSION
@echo off
for %%f in (*) do (
set TMPF=%%f
echo !TMPF:~0,20!
)
Для получения дополнительной помощи, запустите SET /?
для получения справки о синтаксисе и примерах ~0,20, и CMD /?
за то, что делает ENABLEDELAYEDEXPANSION и что !!
делает.
Я не могу точно сказать, как это вписалось бы в ваш код, но может быть что-то вроде:
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "Tokens=5,6*" %%a in ('%s%') do (
set TMPA=%%a
>>%tmp%\list.txt echo !TMPA:~0,20! %%b %%c
)