Toplu iş dosyası konumunu önceden bir toplu iş dosyası konumu belirtmeden bir metin dosyasına atma


8

Çıktıyı bu şekilde alabileceğimin farkındayım (hem standardı hem de hataları yakalamak için):

[batchFilePath] > [logFilePath] 2>&1

Veya standart çıktı için bu yol:

C:\MyBatchFile.bat > output.txt

Ancak toplu iş dosyasının konumunu belirtmeden bunu yapmanın bir yolu var mı?

Örneğin, çalışacağımı varsayalım (yürütmek için iki kere tıklayın) C: \ MyFolder \ MyBatch.cmd ve toplu iş dosyasından çıktıktan sonra (veya tamamlandıktan sonra) C: \ MyFolder \ MyBatch.txt dosyasında çıktıyı bulabilirim

Öyleyse, toplu iş dosyasının içine hangi kodu dahil etmem gerekir?

Yanıtlar:


3

Aklıma gelen tek çözüm ekliyor >> output.txt toplu iş dosyanızdan bir şey çıkaran her komutun sonunda. Sonunda dosyanızın çıktısını ekleyecektir. output.txt

Veya hangi içeriğin olacağını ikinci bir toplu iş dosyası oluşturarak .\MyBatchFile.bat > output.txt.


10

Komutlarınızı yuvarlak parantez içine alın. MyBatchFile.bat:

@echo off
REM setlocal enabledelayedexpansion

(
  echo line one
  echo line two
  echo line three
) > "%~dpn0.txt"

Parantez içindeki değişkenler, bir kerede aynı anda değerlendirilir. ( karşılaşıldı. kullanım enabledelayedexpansion değerlendirmeyi geciktirmek.


1
teşekkür ederim, sarıcı yaratma zorluğunu kurtardım
AdrianBR
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.