【问题标题】:Batch file numbered save files批处理文件编号保存文件
【发布时间】:2014-07-17 08:09:58
【问题描述】:

我正在使用计划任务来运行批处理文件以导出备份。在用于导出的命令中,它使用“FILE=filename”。我给它起了一个名字,但我怎样才能让它编号,这样它就不会被覆盖? (例如文件 1、文件 2、文件 3)。

谢谢

【问题讨论】:

    标签: batch-file export scheduled-tasks


    【解决方案1】:

    如果你在同一个目录:

    @echo off
    setlocal enableDelayedExpansion
    set "file_name_pattern=file"
    for  %%a in (file*) do (
        set "file_name=%%~na"
    )
    
    set "last_file_number=!file_name:%file_name_pattern%=!"
    
    echo last file number : !last_file_number!
    
    set /a next_file_number=last_file_number
    
    set next_file=!file_name_pattern!%next_file_number%
    
    echo next file : %next_file%
    
    endlocal
    

    FOR /L的解决方案

    @echo off
    setlocal enableDelayedExpansion
    set "file_name_pattern=file"
    
    
    set init=1
    
    for /l %%n in (1;1;10000) do (
        echo %%n
        if not exist "!file_name_pattern!%%n" (
    
            set last_file_number=%%n
            goto :break_for
            rem
        )
    )
    :break_for
    
    
    echo last file number : !last_file_number!
    
    set /a next_file_number=last_file_number+1
    
    set next_file=!file_name_pattern!%next_file_number%
    
    echo next file : %next_file%
    
    endlocal
    

    【讨论】:

    • 只要编号文件少于 10 个,就可以正常工作。
    • @Stephan - 该死的。忘记了。将包括DIR或更确切地说FOR /L的电话
    • ahm - 我不想逗你,但是你的FOR /L 解决方案:如果你找到了第一个“不存在”的文件,则无需添加...跨度>
    • 那么我的导出命令应该放在代码中的什么位置?例如exp 用户/密码 FILE=file.dmp 谢谢
    • @npocmaka 命令如我之前的评论所示:exp user/pass FILE="file.dmp"
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多