Friday, March 11, 2011

Tạo và xử lý file có tên file gồm date, time bằng lệnh cmd hoặc tạo file batch

(AnhgoldenBlog)-Tầm sưu 4D

1. Tạo và xử lý file có dạng Tenfile_YYYY-MM-DD (lấy ngày hiện hữu)
Tạo 1 file batch (*.bat) có nội dung sau:

cd d:
copy nul tenfile.txt
set today_yyyy-mm-dd=%date:~10,4%-%date:~4,2%-%date:~7,2%
copy tenfile.txt tenfile_%today_yyyy-mm-dd%.txt
copy tenfile_%today_yyyy-mm-dd%.txt tenfile.xyz
pause

Ghi chú:
set today_yyyy-mm-dd, mục đích lấy ngày hiện hữu, có các tham số sau:

Year (YYYY)%date:~10,4% or  %date:~12,2% (2 digits: YY)
Month (MM)%date:~4,2%
Day (DD)%date:~7,2%
Hour (HH)%time:~0,2%
Minute (MM)%time:~3,2%
Second (SS)%time:~6,2%
Milisecond%time:~9,2%



2. Tạo và xử lý file có dạng Tenfile_YYYY-MM-DD (lấy ngày bất kỳ)

day = today + n (n: âm hoặc dương)



Tạo 1 file batch (*.bat) có nội dung sau:

:: Date foward & backward
@echo off
:: from code by Phil Robyn
setlocal
if [%1]==[] (
echo to get todays date use
echo call "%~n0" today 0
echo.
echo to get yesterdays date use
echo call "%~n0" today -1
echo.
echo to get the date 25 days ago:
echo call "%~n0" today -25
echo.
echo to get the date 1250 days in the future
echo call "%~n0" today +1250
goto :EOF)

set date1=%1
set qty=%2
if /i "%date1%" EQU "TODAY" (
set date1=now
) else (
set date1="%date1%"
)
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,%date1%)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_
echo>>"%temp%\%~n0.vbs" right(100+month(s),2)^&_
echo>>"%temp%\%~n0.vbs" right(100+day(s),2)
for /f %%a in (
'cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a
del "%temp%\%~n0.vbs"
endlocal& set day=%result:~0,4%-%result:~4,2%-%result:~6,2%
echo %%day%% is set to "%day%" (without the quotes)

cd d:
copy nul tenfile.txt
copy tenfile.txt tenfile_%day%.txt
pause


Ví dụ tạo 1 file có tên dayfile.bat
Từ Windows Run, gõ lệnh cmd
Gõ lệnh dayfile.bat today -2

Let's try!

No comments:

Post a Comment