使用批处理文件搜索包含输入的文件,然后将其移动到另一个目录

Using Batch file to search for a file containing an input then moving it to another directory

@echo OFF

@find /c /i "james" "C:\Users\ersojt\Desktop\Sample\*.eml" > NUL
if %ERRORLEVEL% EQU 0 (
    move "C:\Users\ersojt\Desktop\Sample\*.eml" "C:\Users\ersojt\Desktop\Sample2"
) else (
    @echo Failure
)

PAUSE

我正在尝试使用批处理文件来搜索包含输入的特定文件;然后将此文件移动到另一个目录。

谁能帮帮我?

@echo OFF
    setlocal enableextensions disabledelayedexpansion

    set "source=C:\Users\ersojt\Desktop\Sample\*.eml"
    set "target=C:\Users\ersojt\Desktop\Sample2"
    set "searchString=james"

    set "found="
    for /f "delims=" %%a in ('
        findstr /m /i /l /c:"%searchString%" "%source%" 2^>nul 
    ') do (
        if not defined found set "found=1"
        echo move "%%a" "%target%"
    )

    if not defined found (
        echo Failure
    )

    pause

这将使用 findstr 命令搜索包含指定搜索字符串的文件。 /m 开关用于只检索匹配的文件名。

findstrfor /f 命令执行,该命令将检索其输出,并且对于输出中的每一行,执行 do 子句中的代码,其中行存储在 for 可替换参数中(本示例中为 %%a)。

移动操作仅回显到控制台。如果输出正确,请删除 move 命令前缀的 echo