• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

根据文件夹中的文件创建变量

variables 来源:Jack56 4次浏览

每个星期五晚上文件将被放置在一个目录中。我正在编写一个批处理文件来归档文件(使用简单的复制命令),然后我需要重命名并将文件加载到OLAP数据库中。不幸的是,我不知道每周的文件名是什么,因为它是基于日期和时间戳的 – 我知道的唯一的事情就是将以.txt结束。根据文件夹中的文件创建变量

由于这将是该文件夹中唯一的文件,是否有可能创建一个基于文件名的变量?

这是我到目前为止有:

if not exist "%LoadFolder%\*.txt" (
    rem Send email notification that the latest Exchange Rates file does not exist... 
    "E:\Programs\PuTTY\plink.exe" -v -ssh servername -pw password /u02/hyp_app/Scripts/STFC/STFC_File_Not_Exist.ksh 
    exit 
) else (
    rem 1) Copy latest file to Archive folder... 
    FOR /F "delims=|" %%I IN ('DIR "%LoadFolder%\*.txt" /B /O:D') DO SET NewestFile=%%I 
    copy "%Load%\%NewestFile%" "%LoadFolder%\Archive\%NewestFile%" 

    rem 2) Rename the latest file to Load_File.txt... 
    FOR /F "delims=|" %%I IN ('DIR "%LoadFolder%\*.txt" /B /O:D') DO SET NewestFile=%%I 
    REN "%LoadFolder%\%NewestFile%" "Load_File.txt" 
) 

REM rest of code.......... 

我的问题是,该文件夹重命名为LOAD_FILE而不是在文件夹中的文件。我究竟做错了什么?


===========解决方案如下:

假设存档文件夹存在,请尝试此脚本并发布确切的错误(如果有的话)。在SS64 CMD给

@echo off 
setlocal enabledelayedexpansion 
set LoadFolder=yourFolderPath 
if not exist "%LoadFolder%\*.txt" (
rem Send email notification that the latest Exchange Rates file does not exist... 
"E:\Programs\PuTTY\plink.exe" -v -ssh servername -pw password /u02/hyp_app/Scripts/STFC/STFC_File_Not_Exist.ksh 
) else (rem Copy latest file to Archive folder and rename it at source dir 
    FOR %%I IN ("%LoadFolder%\*.txt") DO (
     copy %%I "%LoadFolder%\Archive\%%~nxI" 
     ren %%I Load_File%%~xI)) 
timeout 5 
exit /b 

了解更多关于path modifiers:你真正的文件夹路径替换yourFolderPath


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)