Кажется, что метод NUL работает только с 8.3 совместимыми именами файлов.
(Другими словами, `D: \ Documents and Settings` -" плохо ", а` D: \ DOCUME ~ 1` - "хорошо")
Я думаю, что есть некоторая сложность в использовании метода "NUL", когда в имени каталога есть ПРОСТРАНСТВА, такие как "Документы и настройки".
Я использую Windows XP с пакетом обновления 2 и запускаю команду cmd из% SystemRoot% \ system32 \ cmd.exe
Вот несколько примеров того, что НЕ работает и что работает для меня:
(Это все демонстрации, выполненные «вживую» в интерактивном режиме. Я полагаю, что вы должны заставить их работать там, прежде чем пытаться отлаживать их в сценарии.)
Это НЕ РАБОТАЛО:
D:\Documents and Settings>if exist "D:\Documents and Settings\NUL" echo yes
Это НЕ РАБОТАЛО:
D:\Documents and Settings>if exist D:\Documents and Settings\NUL echo yes
Это работает (для меня):
D:\Documents and Settings>cd ..
D:\>REM get the short 8.3 name for the file
D:\>dir /x
Volume in drive D has no label.
Volume Serial Number is 34BE-F9C9
Directory of D:\
09/25/2008 05:09 PM <DIR> 2008
09/25/2008 05:14 PM <DIR> 200809~1.25 2008.09.25
09/23/2008 03:44 PM <DIR> BOOST_~3 boost_repo_working_copy
09/02/2008 02:13 PM 486,128 CHROME~1.EXE ChromeSetup.exe
02/14/2008 12:32 PM <DIR> cygwin
[[Смотрите прямо здесь !!!! ]]
09/25/2008 08:34 AM <DIR> DOCUME~1 Documents and Settings
09/11/2008 01:57 PM 0 EMPTY_~1.TXT empty_testcopy_file.txt
01/21/2008 06:58 PM <DIR> NATION~1 National Instruments Downloads
10/12/2007 11:25 AM <DIR> NVIDIA
05/13/2008 09:42 AM <DIR> Office10
09/19/2008 11:08 AM <DIR> PROGRA~1 Program Files
12/02/1999 02:54 PM 24,576 setx.exe
09/15/2008 11:19 AM <DIR> TEMP
02/14/2008 12:26 PM <DIR> tmp
01/21/2008 07:05 PM <DIR> VXIPNP
09/23/2008 12:15 PM <DIR> WINDOWS
02/21/2008 03:49 PM <DIR> wx28
02/29/2008 01:47 PM <DIR> WXWIDG~2 wxWidgets
3 File(s) 510,704 bytes
20 Dir(s) 238,250,901,504 bytes free
D:\>REM now use the \NUL test with the 8.3 name
D:\>if exist d:\docume~1\NUL echo yes
yes
Это работает, но глупо, потому что точка уже означает, что я нахожусь в каталоге:
D:\Documents and Settings>if exist .\NUL echo yes