你能帮我看看我的代码吗?它只能打开文件夹中的 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 命令和子字符串为每个日期和时间段创建单独的变量。