### Godot version

v4.1.rc2.official [46424488e]

### System information

Godot v4.1.rc2 - Windows 10.0.19045 - Vulkan (Compatibility) - GeForce GTX 550 Ti () - Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz (4 Threads)

### Issue description

In the Project Manager.
With a project that has a comma in the name, for example: `one, two`

When the open project folder button is pressed, then two issues can occur:
- If there is no other project with the name before the comma: `one`
Then the default Godot project folder opens: `C:/Users/username/Documents`
- If there is another project with the name: `one`
Then the `one` project folder opens.
(the project `one` doesn't need to be listed in the Project Manager, 
it just has to exist in the same folder as the `one, two` folder)

Expected:
The `one, two` project folder should open.

Notes:
The open project folder button works when there isn't a comma in the project name.
For example: `three`, or `three four`

### Steps to reproduce

- Download the attached zip file: [two projects.zip](https://github.com/godotengine/godot/files/11929652/two.projects.zip)
- Extract the zip file into an empty folder.
- Open the Godot Project Manager.
- Scan the extracted folder.
There should now be two projects with the names: `one` and `one, two`.
- Click on the `one, two` projects, open project button, to the left of the project path.

### Observed

The project `one` folder opens.

### Expected

The project `one, two` folder should have opened.

### Continued reproduction steps
- Now remove the `one` folder from the extracted folder.
It doesn't matter that it's still listed in the Project manager.
- Click on the `one, two` projects, open project button.

### Observed 2

Now the default Godot project folder opens: `C:/Users/username/Documents`

### Expected 2

Same as above, the `one, two` project folder should have opened.

### Minimal reproduction project

[two projects.zip](https://github.com/godotengine/godot/files/11929652/two.projects.zip)

WCHAR wval[0x7fff]; 
	int wlen = GetEnvironmentVariableW((LPCWSTR)(p_var.utf16().get_data()), wval, 0x7fff);
	if (wlen > 0) {
		return String::utf16((const char16_t *)wval);
	}
	return "";
}
void OS_Windows::set_environment(const String &p_var, const String &p_value) const {
	ERR_FAIL_COND_MSG(p_var.is_empty() || p_var.contains("="), vformat("Invalid environment variable name '%s', cannot be empty or include '='.", p_var));
	Char16String var = p_var.utf16();
	Char16String value = p_value.utf16();
	ERR_FAIL_COND_MSG(var.length() + value.length() + 2 > 32767, vformat("Invalid definition for environment variable '%s', cannot exceed 32767 characters.", p_var));
	SetEnvironmentVariableW((LPCWSTR)(var.get_data()), (LPCWSTR)(value.get_data()));
}
void OS_Windows::unset_environment(const String &p_var) const {
	ERR_FAIL_COND_MSG(p_var.is_empty() || p_var.contains("="), vformat("Invalid environment variable name '%s', cannot be empty or include '='.", p_var));
	SetEnvironmentVariableW((LPCWSTR)(p_var.utf16().get_data()), nullptr); 
}
String OS_Windows::get_stdin_string() {
	WCHAR buff[1024];
	DWORD count = 0;
	if (ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), buff, 1024, &count, nullptr)) {
		return String::utf16((const char16_t *)buff, count);
	}
	return String();
}
Error OS_Windows::shell_open(String p_uri) {