java - 在 java 文件中搜索行并使用批处理脚本输出到另一个文件

标签 java batch-file

我想在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 /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 /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/

相关文章:

java - 国家、州和城市微调器无法正常工作

java - 为什么我们不再需要在 Eclipse 中在类路径中设置带有 JNI 实现的库?

windows - 将 .txt 上传到 FTP 的批处理文件

c++ - 使用 `createProcess()` 调用 Webots 时传递参数

Windows XP 或更高版本 Windows : How can I run a batch file in the background with no window displayed?

java - 检测到设备正在关闭?

java - Java 中的私有(private)方法 stub

Java代码编译但不执行: "Could not find the main class"

batch-file - 在 Windows Server 上备份事件日志的简单方法

windows - 批处理文件 - 如果存在并输出错误