我有一个充满文件的目录,我正在尝试查找str并提取引号内的内容
我的测试
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
)
最佳答案
这个怎么样?
@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
关于windows - 如何使用 findstr 从内部引号中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62845352/