Код:
Код: Выделить всё
FOR /r %%A in ("*") DO (
set MYFILE=%%A
echo %MYFILE%| findstr /I /R "Txt$"
If %ERRORLEVEL% EQU 0 echo txt exist
echo %MYFILE%| findstr /I /R "Cmd$"
If %ERRORLEVEL% EQU 0 echo cmd exist
)Внутри папки файлы archive.cmd и новый текстовой документ.txt
Цитата:
C:\archive>archive.cmd
C:\archive>FOR /R %A in ("*") DO (
set MYFILE=%A
echo | findstr /I /R "Txt$"
If 0 EQU 0 echo txt exist
echo | findstr /I /R "Cmd$"
If 0 EQU 0 echo cmd exist
)
C:\archive>(
set MYFILE=C:\archive\archive.cmd
echo | findstr /I /R "Txt$"
If 0 EQU 0 echo txt exist
echo | findstr /I /R "Cmd$"
If 0 EQU 0 echo cmd exist
)
txt exist
cmd exist
C:\archive>(
set MYFILE=C:\archive\Новый текстовый документ.txt
echo | findstr /I /R "Txt$"
If 0 EQU 0 echo txt exist
echo | findstr /I /R "Cmd$"
If 0 EQU 0 echo cmd exist
)
txt exist
cmd exist
C:\archive>archive.cmd
C:\archive>FOR /R %A in ("*") DO (
set MYFILE=%A
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Txt$"
If 1 EQU 0 echo txt exist
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Cmd$"
If 1 EQU 0 echo cmd exist
)
C:\archive>(
set MYFILE=C:\archive\archive.cmd
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Txt$"
If 1 EQU 0 echo txt exist
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Cmd$"
If 1 EQU 0 echo cmd exist
)
C:\archive\Новый текстовый документ.txt
C:\archive>(
set MYFILE=C:\archive\Новый текстовый документ.txt
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Txt$"
If 1 EQU 0 echo txt exist
echo C:\archive\Новый текстовый документ.txt | findstr /I /R "Cmd$"
If 1 EQU 0 echo cmd exist
)
C:\archive\Новый текстовый документ.txt
C:\archive>
Вот так вот получаю два совершенно неадекватных, притом разных выхлопа. Откуда такое странное поведение?
