我的批处理文件只打开 1 个文件,即使我的路径中有更多文件

我的批处理文件只打开 1 个文件,即使我的路径中有更多文件

你能帮我看看我的代码吗?它只能打开文件夹中的 1 个文件,但是怎么办呢?该文件夹包含 8 个文件。有人能帮我一下吗?我是批处理脚本的新手,谢谢

@echo off
setlocal enabledelayedexpansion

:: Extract date fields - language dependent
for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (
        set v1=%%i& set v2=%%j& set v3=%%k
        if "%%i:~0,1%%" gtr "9" (set v1=%%j& set v2=%%k& set v3=%%l)

        for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo.^|date') do (
            set %%m=!v1!& set %%n=!v2!& set %%o=!v3!
    )
)
:: Final set for language independency (English and Portuguese - maybe works for Spanish and French)
set year=%yy%%aa%
set month=%mm%
set day=%dd%
set a=2
set /a c=%dd%+%a%
set var=00%c%
set var=%var:~-2%
:: Testing
echo Year:[%year%] - month:[%month%] - day:[%var%]
start "" EXCEL.exe "\\mwcfs\DC Duty Files\SAP PROCESSING\OSB DOWNLOAD\FOR DOWNLOAD\%year%\%month% December %year%\Day %var%\*.xlsx"
endlocal
pause

答案1

您可以使用FOR命令遍历该目录中的所有文件,然后使用 excel 打开每个文件。我使用 PUSHD 命令将工作目录临时更改为文件所在的目录。POPD 命令强制将工作目录返回到上一个目录

PUSHD "\\mwcfs\DC Duty Files\SAP PROCESSING\OSB DOWNLOAD\FOR DOWNLOAD\%year%\%month% December %year%\Day %var%\"
for %%G in (*.xlsx) do start "" excel.exe "%%~G"
POPD

以下是以 YYYYMMDDhhmmss 格式获取日期和时间的更好方法

REM Get date and time in YYYYMMDDhhmmss format
for /f "tokens=2 delims==." %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"

这将输出 20171214150615。然后,您可以使用 set 命令和子字符串为每个日期和时间段创建单独的变量。

相关内容