маска forfiles * .something не фильтрует выходные данные - PullRequest
2 голосов
/ 19 января 2012

Я пытаюсь запустить базовую команду forfiles, но независимо от того, какую маску я использую, она всегда просто печатает все содержимое каталога. Не фильтруется для * .bat no "это командный файл", просто простой список всех файлов в C: \ Я работаю над WinXPproffesional. В чем может быть причина?

forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"

Ответы [ 3 ]

2 голосов
/ 19 января 2012

Каким-то образом эта версия использует другой синтаксис:

FORFILES -pc:\ -s -m*.BAT -c"CMD /C Echo @file is a batch file"

работает! * * 1004

0 голосов
/ 20 января 2012

На самом деле в Windows XP нет forfiles, но равно one в Windows 2003 Server с синтаксисом как в вашем вопросе.

Windows 2000 имел инструмент, но только в виде набора ресурсов, который нужно было загружать отдельно. По какой-то причине соответствующая статья Technet не перечисляет forfiles как часть комплекта, хотя, как можно понять из this и этой статьи Должно быть, это было изначально. Возможно, ребята из Microsoft решили прекратить распространение старой версии, чтобы избежать путаницы с новой.

И да, похоже, ваша forfiles копия является более старой версией, которая имеет немного другой синтаксис, как объяснено в этом посте .

0 голосов
/ 19 января 2012

Команда должна работать.

Возможно, у вас есть FORFILES.BAT, FORFILES.CMD или поддельная копия FORFILES.EXE либо в вашем текущем каталоге, либо в другом каталоге, который находится в вашем PATH.

Попробуйте запустить эту команду из командной строки, чтобы убедиться, что выполняется правильный файл FORFILES.EXE.

for %F in (forfiles.exe forfiles.bat forfiles.cmd) do @echo %~$path:F

Если это не проблема, то мне кажется, что у вас есть ошибочная версия FORFILES.

Попробуйте использовать один вариант за раз, чтобы увидеть, какой, если какой-либо изопции работают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...