gpt4 book ai didi

java - Windows 批处理 "dir"命令更改?

转载 作者:行者123 更新时间:2023-12-01 18:47:54 24 4
gpt4 key购买 nike

这似乎不太可能,但我只能假设最近(本周)在 Windows 更新期间发生了一些变化。

至少有两个以前可以运行的脚本现在不能运行。也就是说,我几乎每天都使用的脚本。其中包括我的一个小型 Java 项目的脚本构建器。

dir /s /B /a:-d *.java >sources.txt

"%JAVA_HOME%"\bin\javac %javaopts% -d ..\classes -nowarn -classpath %clspath% @sources.txt

标准,对吗?除了“dir”不再像以前那样删除目录名称(按 a:-d)。因此,我的 java 编译脚本失败了。 (为什么是的,我也使用Eclipse。)

如图所示,源中列出的文件包含文件的完整路径(“C:\X\Y\Z\src\foo.java”)。通过手动删除 src 前面的路径(“c:\x\y\z”),相同的脚本可以工作。我尝试了不同的选项大小写,更改了 javac 命令,但由于源文件中标识的完整路径,我总是收到解析错误“未知选项 c:...:)”。

无论它为何发生,它现在正在发生,我正在寻找尚未找到的替代方案。一个简单的替代方案 - 我可能可以编写一个循环来删除“src”之前的任何内容(例如) - 但这两个命令被很多很多地方引用,所以我想我可以节省别人的时间并自己发布。

最佳答案

评论的人是正确的。参数 /a:-D 不会删除目录。请参阅dir .

当你想到与之相关时,如果你想“构建一个小型Java项目”(使用脚本的第二行),为什么要删除包含完全限定文件名的java文件的文件夹到sources.txt

/s: Lists every occurrence of the specified file name within the specified directory and all subdirectories.

/b: Displays a bare list of directories and files (fully qualified names), with no additional information (i.e, date, time, size are omitted).

/a[[:]]: Displays only the names of those directories and files with the attributes that you specify.

如果您使用 /a 指定-d 属性,Directories(d 表示 Directories) 显示(- 表示不是)

底线是 sources.txt 将有一个完全限定的文件名列表,该列表与当前目录所在的及其下的掩码 *.java 相匹配运行脚本的时间

关于java - Windows 批处理 "dir"命令更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59792671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com