2011-12-06 6 views
5

Tôi đang cố gắng sử dụng tệp lô để tạo một tệp lô khác ... đó là tệp tôi phải sử dụng thường xuyên với một vài biến được thay đổi mỗi lần. Tôi đang chạy vào một vấn đề bởi vì trong đợt tôi đang cố gắng tạo ra, nó cũng sử dụng echo để ghi vào một tập tin .txt.là nó có thể echo một lệnh echo vào một tập tin mới?

Đây là lệnh:

echo echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat 

Tôi muốn nhập toàn bộ chuỗi echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt vào C: \ filegrabber_% org% .bat.

Tôi có thể đặt "" xung quanh nhưng sau đó chúng xuất hiện trong lô mà tôi đang cố gắng tạo.

Có ai biết về cách này không?

Trả lời

5

Bạn thoát % với %% và các ký tự đặc biệt khác với ^ để điều này sẽ hoạt động;

echo echo %%date%% - %%time%% ^>^> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat 
+2

Bạn nói đúng về các nhân vật thoát, nhưng Tôi nghĩ anh ta muốn đầu ra đi vào 'C: \ filegrabber_% org% .bat', vì vậy anh ta không nên thoát khỏi' >> 'thứ hai. – aphoria

+0

Ah yes cảm ơn đúng của bạn, cố định ở trên –

+0

đúng, tôi đang tìm cách để có được tất cả điều này: 'echo% date% -% time% >> C: \ MOVEit \ Logs \ FileGrabberLog.txt' vào C: \ filegrabber_% org% .bat – iesou

1

Hoặc để tránh các dấu mũ, bạn có thể sử dụng dấu ngoặc kép biến mất

setlocal EnableDelayedExpansion 
(
    echo !="!echo %%date%% - %%time%% >> C:\MOVEit\Logs\FileGrabberLog.txt 
) > C:\filegrabber_%org%.bat 

Chỉ có phần trăm phải được tăng gấp đôi sau đó.

Nó hoạt động, vì !="! được phân tích cú pháp trong giai đoạn ký tự đặc biệt và được quyết định rằng phần còn lại của dòng sẽ được trích dẫn.

Và trong giai đoạn bị trì hoãn, !="! sẽ bị xóa, vì biến có tên =" không tồn tại (và không thể tạo).

0

Câu trả lời sau đây có thể có lợi cho câu hỏi của bạn:

này đã được đăng trước đó và câu trả lời đã được đưa ra, tương tự như những gì đã được đưa ra ở đây: Ignore Percent Sign in Batch File

+0

Cảm ơn, tôi sẽ xem xét – iesou