3

Я пытаюсь запустить простой командный файл:

@echo off      <-- don't print this line or any of the preceeding lines to the console window.
pushd "K:\"    <-- in the quoted directory
for %%j in (*) <-- for every file in the directory
do
if %%~zj       <-- if the size of the file
lss 37000      <-- is less than 37k
del %%j        <-- delete the file
popd           <-- go back to original directory.

Я начинаю получать сообщение об ошибке при @echo off и pushd , но если я попробую pushd в cmd.exe он будет работать нормально. Я уверен, что мне не хватает чего-то простого.

Есть идеи?

1 ответ1

3

Это происходит, когда вы используете программу для запуска командного файла, а командный файл не вызывает cmd.exe /c первым. Там нет pushd.exe, это встроенная команда в cmd.exe. Но когда ваша программа вызывает ваш пакетный файл, он запускает его напрямую - нет cmd.exe. (Да, это странно.)

Решение: откуда бы вы ни запускали, используйте cmd.exe /c

Поэтому, если вы используете deletetelittlefiles.bat, измените его на cmd.exe /c deletelittlefiles.bat.

Источник: я являюсь руководителем лаборатории тестирования программного обеспечения, и наш тестовый инструктор может, но не обязан запускать программы, не запуская их с помощью cmd.exe.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .