it-swarm-vi.tech

Ngày hiện tại trong tên tập tin

Tôi đã lên lịch sao lưu tập lệnh làm cho cơ sở dữ liệu kết xuất. Làm cách nào để thêm dấu thời gian ngày vào tên tệp?

Tôi đang nói về Windows và CMD.

15
Bogdan Gusiev

Trong lệnh Prompt và các tệp bó, bạn có thể sử dụng %date%%time% để trả về ngày và thời gian tương ứng. Ngày hoạt động tốt, nhưng giá trị thời gian trả về có chứa dấu hai chấm, không hợp lệ để sử dụng trong tên tệp, nhưng có một cách để loại bỏ chúng.

Sử dụng một cái gì đó như:

COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

Điều này sẽ tạo ra một tên tệp như file_172215_01062009.txt

Cập nhật : Các ý kiến ​​dưới đây có các vòng xoắn thú vị về lệnh này cũng như một số vấn đề tiềm ẩn mà bạn có thể tránh.

21
aalaap

Sử dụng %DATE% và/hoặc %TIME biến môi trường, tùy ý thay thế các ký tự không được phép trong tên tệp, sử dụng %name:from=to% (%TIME::=% sẽ loại bỏ tất cả dấu hai chấm).

[.__.] lý thuyết "echo% ngày% [.__.] 2009-06-01 [.__.] [.__.] lý thuyết" echo% time% [.__.] 16: 30: 41,46 [ .___.] [.__.] lý thuyết "echo% time :: =% [.__.] 163052,17 [.__.] [.__.] lý thuyết" echo% time :: =,% [.___. ] 16,30,58,68 [.__.] [.__.] Lý thuyết "sao lưu tiếng vang-% ngày% -% time :: = -%. Zip [.__.] Sao lưu-2009-06-01-16 -31-18,82.Zip [.__.]
14
user1686

Cách đáng tin cậy duy nhất để có được ngày thích hợp cho dù cài đặt khu vực là gì, là giải pháp từ foxidrive @ https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script = =

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
4
Eric Ouellet

Sử dụng biến% DATE% trong tên tệp.

Cũng có một biến% TIME%, nhưng nó chứa các ký tự không được phép trong tên tệp.

Dưới đây là một ví dụ về việc viết một dòng văn bản vào một tệp mới, trong đó tệp được tạo có ngày và giờ trong tên của nó.

echo "testfile" >> backup-%DATE%.txt
1
Frode Lillerud