diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java
index a7269cd967..dd1079f761 100644
--- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java
@@ -1697,6 +1697,10 @@ public class HeadlessAnalyzer {
folderPath += DomainFolder.SEPARATOR;
}
folderPath += startDir.getName();
+
+ // Handles windows directory paths like "d:", both real and extracted paths on non-windows
+ // filesystem or archive files
+ folderPath = folderPath.replaceAll(":/", "/");
for (GFile file : fs.getListing(startDir)) {
String name = file.getName();
@@ -1713,7 +1717,9 @@ public class HeadlessAnalyzer {
continue;
}
try {
- checkValidFilename(fqFSRL.getName());
+ if (!file.isDirectory()) {
+ checkValidFilename(fqFSRL.getName());
+ }
processWithImport(fqFSRL, folderPath, depth, false);
}
catch (InvalidInputException e) {
diff --git a/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md b/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md
index ecb4f92ef1..d51b0fa17f 100644
--- a/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md
+++ b/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md
@@ -66,7 +66,7 @@ for common use cases.
[-scriptlog <path to script log file>]
[-log <path to log file>]
[-overwrite]
- [-overwrite]
+ [-mirror]
[-recursive [<depth>]]
[-readOnly]
[-deleteProject]