我想在java文件中查找特定的字符串。它将与唯一字符串“private static String currentVersion”进行匹配。在文件中,这是一个声明,因此我有兴趣将整行输出到另一个文件。
我目前使用以下代码来执行此操作:
set "xprvar="
for /F "skip=34 delims=" %%i in (ClientGUI.java) do set "xprvar=%%i"&goto nextline
:nextline
echo %xprvar% > clientversion.txt
仅当该行始终是存储此数据的第 35 行时,此方法才有效。我将对此文件进行更改,因此我想知道是否可以通过匹配上述字符串来获得更动态的方法。
我尝试过的另一件事是
findstr /s /b "private static String currentVersion" ClientGUI.java
但是,这似乎只匹配 private 或 static 或 String 或 currentVersion,而不是整个字符串。
最佳答案
将四个单词用作单个字符串,与 findstr 匹配尝试:
FindStr /IC:"private static String currentVersion" "ClientGUI.java">"clientversion.txt" 2>NUL
如果您愿意,您也可以检索“双引号”版本字符串。
For /F Tokens^=2Delims^=^" %A In ('FindStr /IC:"private static String currentVersion" "ClientGUI.java" 2^>NUL')Do @>"clientversion.txt" Echo(%A
<小时/>
您可以使用 find 检索该行也:
Find /I "private static String currentVersion"<"ClientGUI.java">"clientversion.txt" 2>NUL
…类似地,仅版本字符串:
For /F Tokens^=2Delims^=^" %A In ('Find "private static String currentVersion"^<"ClientGUI.java" 2^>NUL')Do @>"clientversion.txt" Echo(%A
<小时/>
正如我在评论中所述,关于您对 /S
选项的使用,您可以通过使用其帮助选项 /?< 来了解如何使用几乎任何命令
在命令提示符处:
- FindStr/?
- 找到/?
- 对于/?
关于java - 在 java 文件中搜索行并使用批处理脚本输出到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57637271/