繁体   English   中英

批处理文件,不断检查文件夹中是否有新的CSV文件,将它们重命名,然后使用当前文件启动Firefox

[英]Batch File to check Folder continuously for new CSV files , renaming them one after another and start Firefox with current File

批处理文件应连续扫描某个文件夹中是否有新的csv文件,并且每当将新的csv文件放入该文件夹时,该csv文件都应重命名为特定的文件名,因为firefox扩展名应读取该文件。

我已经为此编写了一个批处理文件,但是我认为解决方案并不完美。 这是我的尝试:

我从批处理文件InitRun.bat开始:

@echo off

for /L %%i in (1,1,86400) do (
call FFRun1.bat
timeout /T 1
) 

FFRun1.bat看起来像这样:

@echo off

FOR %%f in (*Data.csv) do ( 
echo %%f
set FILE=%%f
call :copy
)
goto end

:copy
copy /y %FILE% merged.csv
del %FILE%
call :RunFF

:RunFF
type merged.csv
pushd "C:\Program Files (x86)\Mozilla Firefox\"
start /wait firefox.exe
popd 

:end
exit /b

如果将两个或多个csv文件放在同一文件夹中,则我的解决方案只能处理一个csv,并且merged.csv仅包含最后处理的csv。 此外,Firefox会打开多个窗口,但也仅适用于复制到merged.csv的最后一个csv。

每个新的csv文件的文件名均为* Data.csv,应将其重命名为merged.csv,对于每个新的csv文件,firefox应在新选项卡中启动并处理当前的merged.csv。 csv文件不应一次全部重命名,而应该一次又一次重命名。 Firefox也不应一次启动多个窗口/实例。

我希望你能帮助我。

问候,

开普勒

它应该按照您指示的顺序执行操作,并按照日期顺序遍历目录,并将* data.csv转换为合并csv,以供以后处理(使用记事本更改了firefox以进行测试,根据需要进行调整)。 它还将检查.csv文件是否正在使用中,并等待文件变得可用。 如果无法处理(使用)文件,则直到锁定文件可用(按生成顺序处理文件)之后,才可以访问更高版本的文件。

@echo off
    setlocal enableextensions

    set "folder=d:\temp"
    set "files=*data.csv"

    pushd "%folder%"
    for /l %%a in (0 0 1) do (
        if exist "%files%" (
            echo files found
            set "done="
            for /f "tokens=*" %%d in ('dir /b /od "%files%"') do if not defined done (
                call :replace "merged.csv" "%%d"
                if not errorlevel 1 (
                    start "" /wait notepad "merged.csv"
                ) else (
                    set "done=1"
                )
            )
        ) else (
            echo no files to process
        )
        timeout.exe /t 2 >nul 
    )

    endlocal
    exit /b

:replace target source
    if exist "%~1" del /f /q "%~1" >nul 2>nul
    if errorlevel 1 (
        echo file "%~1" is in use
        exit /b 1
    )
    ren "%~2" "%~1" >nul 2>nul
    if errorlevel 1 (
        echo file "%~2" is in use
        exit /b 1
    )
    exit /b 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM