Переменная набора к результату "Find" в пакетном файле

Существуют разные реализации и версии mv. Вы можете проверить допустимый синтаксис вашей версии, используя man mv.

  • Если у вас есть GNU mv, вы можете использовать mv -t target/dir *.mp3.
  • Большинство реализаций должны поддерживать mv *.mp3 target/dir.
  • Если ваш mv поддерживает только абсолютный минимум mv source target только с одним источником и одним целевым файлом, вы можете использовать следующую команду, которая всегда должна работать, если существует target/dir/.

for i in *.mp3; do mv "$i" "target/dir/$i"; done
10
задан MattH 6 May 2009 в 18:51
поделиться

2 ответа

из командной строки

for /f "tokens=3" %f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%f 

из пакетного сценария

for /f "tokens=3" %%f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%%f 
15
ответ дан 3 December 2019 в 15:53
поделиться

Вам не нужно использовать команду для ; find установит ERRORLEVEL на одно из этих значений в зависимости от результата:

  • 0, было найдено хотя бы одно совпадение.
  • 1, совпадений не найдено.
  • 2 или более, произошла ошибка.

Поскольку похоже, что вы просто хотите узнать, завершена ли передача, а не общее количество появлений строки, вы можете сделать что-то вроде этого:

@echo OFF

@find /c /i "Transfer Complete" "C:\test path\ftp.LOG" > NUL
if %ERRORLEVEL% EQU 0 (
    @echo Success
) else (
    @echo Failure
)
12
ответ дан 3 December 2019 в 15:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: