Hi All,
There are two separate issues when using: IF EXIST ?:\NUL
I'm lazy and wrote up a info text file over at
https://fd.lod.bz/redist/testing/devNUL/
<https://fd.lod.bz/redist/testing/devNUL/> and
bug report at https://github.com/FDOS/freecom <https://github.com/FDOS/freecom>
that I will just copy/paste here.
Additional testing would be required to determine the cause of these problems.
Since
the same problem exists for Issue #1 under MS-DOS, an argument could be made to
not fix that problem. As for Issue #2, it is a FreeDOS specific bug and will
need fixed.
:-)
Jerome
NUL Device Existence Test
https://fd.lod.bz/redist/testing/devNUL/
<https://fd.lod.bz/redist/testing/devNUL/>
2023-05-23
This test reveals two separate issues:
Issue 1:
Testing for the existence of a path by using the NUL device does not
work on CD/DVD drives or Network Shares. The result is always FALSE.
IF EXIST N:\NUL ECHO Drive N: exists.
See either result0.htm <https://fd.lod.bz/redist/testing/devNUL/result0.htm> or
result1.htm <https://fd.lod.bz/redist/testing/devNUL/result1.htm>.
Although this behavior deviates from that of other drives, it is
consistent with the behavior of MS-DOS 6.22 using MSCDEX. There is
the possibility that correcting this issue has the potential to break
compatibility with any program that may rely on this behavior.
Issue 2:
Testing for the existence of a non-existing drive returns unreliable
results. This seems reproducible based on the current working directory
when the test is performed. For each test, a copy of the TEST.BAT
<https://fd.lod.bz/redist/testing/devNUL/test.bat> was
placed in the current working directory.
result0.htm <https://fd.lod.bz/redist/testing/devNUL/result0.htm> was run with
the current drive and directory on an internal
local drive (C:). It incorrectly shows that the non-existing drive (P:)
was found.
result1.htm <https://fd.lod.bz/redist/testing/devNUL/result1.htm> was run with
the current drive and directory on an remote
network share (N:). It correctly shows that the non-existing drive (P:)
was not found.
Switching back and forth between drive C: and N: and running the
TEST.BAT <https://fd.lod.bz/redist/testing/devNUL/test.bat> consistently
produces the same results.
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel