как извлечь текст из кавычек с помощью findstr - PullRequest
2 голосов
/ 11 июля 2020

У меня есть каталог, полный файлов, которые я пытаюсь найти и извлечь из кавычек

мой тест

G:\Games\Steam\steamapps\common\XXXXXXXXX\addons>findstr addontitle workshop\*.vpk
workshop\XXXXXXXXX.vpk:        addontitle "Addon 1"
workshop\XXXXXXXX.vpk:        addontitle                      "Addon 2"
-cont-

Я просто хочу иметь только заголовок

for /f tokens^=1-3delims^=:^" %%i in ('findstr /RC:"addontitle *\".*\"" "workshop\*.vpk"') do (
    echo "FOUND: %%~ni.vpk TITLE: %%k"
    mkdir "custom\%%~ni">nul 2>&1
    mklink ".\custom\%%~ni\pak01_dir.vpk" "..\..\workshop\%%~ni.vpk">nul 2>&1
    echo            Game                "left4dead2\addons\custom\%%~ni"        // %%k>> %GAMEINFO%
)

for /f tokens^=1-3delims^=:^" %%i in ('findstr /VRC:"addontitle *\".*\"" "workshop\*.vpk"') do (
    echo "FOUND: %%~ni.vpk"
    mkdir "custom\%%~ni">nul 2>&1
    mklink ".\custom\%%~ni\pak01_dir.vpk" "..\..\workshop\%%~ni.vpk">nul 2>&1
    echo            Game                "left4dead2\addons\custom\%%~ni"        // ADDON INFO MISSING>> output.txt
)

1 Ответ

2 голосов
/ 11 июля 2020

Как насчет этого?

@echo off
for /f tokens^=1-3delims^=:^" %%i in ('findstr /RC:"addontitle *\".*\"" "workshop\*.vpk"') do (
    mkdir "custom\%%~ni">nul 2>&1
    mklink ".\custom\%%~ni\pak01_dir.vpk" "..\..\workshop\%%~ni.vpk">nul 2>&1
    echo          Game                "XXXXXXXX\addons\custom\%%~ni"        // %%k
)>> output.txt

findstr все равно получает имя файла при использовании в списке файлов, так что просто используйте это.

Примечание Я взял на себя смелость добавить двойные кавычки к строке echo ed "XXXXXXXX\addons\custom\%%~ni", если она вам не нужна, просто удалите ее.

Если addontitle может быть в любом случае, добавьте /I на команду findstr.

@echo off
for /f tokens^=1-3delims^=:^" %%i in ('findstr /IRC:"addontitle *\".*\"" "workshop\*.vpk"') do (
    mkdir "custom\%%~ni">nul 2>&1
    mklink ".\custom\%%~ni\pak01_dir.vpk" "..\..\workshop\%%~ni.vpk">nul 2>&1
    echo          Game                "XXXXXXXX\addons\custom\%%~ni"        // %%k
)>> output.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...