Perlu file batch untuk menjalankan beberapa cmd windows atau buffer lebih dari 9999 baris


2

Saya perlu menjalankan perintah di jendela cmd (di XP) yang akan mengembalikan hasil tentang file di direktori yang diberikan. Untungnya setiap direktori yang diberikan tidak akan berisi lebih dari 9999 file, jadi jika saya mengatur buffer baris ke 9999 maka saya baik-baik saja. Namun, saya perlu menjalankan perintah ini di sekitar 600 direktori! Saya akan sangat menghargai saran tentang cara mengatasi masalah.

Saya berpikir mungkin file batch yang akan membuka cmd prompt, mengatur buffer ke 9999 baris, menjalankan perintah, membiarkan jendela terbuka, dan ketika jendela pertama sedang berjalan kemudian buka jendela baru dan ulangi prosesnya.

Tentu saja, jika saya dapat melakukan buffer atau mengembalikan hasil lebih dari 9999 file maka itu akan menjadi lebih baik.

Terima kasih sebelumnya, Andrew

Jawaban:


4

Anda dapat menyimpan output layar dalam file teks dengan menggunakan >atau >>. Untuk menggunakannya, masukkan perintah seperti biasa tetapi pada akhirnya Anda menambahkan satu atau dua ucapan lebih besar dan kemudian nama file yang ingin Anda output, seperti: dir c:\users /s > c:\list.txt Menggunakan satu >akan selalu membuat file baru, menimpa setiap file yang ada dengan nama itu. Menggunakan dua >>akan membuat file jika tidak ada, tetapi akan menambahkan ke file yang ada. Ini bisa sangat membantu untuk mencatat file batch, karena Anda dapat meletakkannya>> file.txtsetelah setiap baris dan itu akan menampilkan semua output layar ke file yang sama sehingga Anda dapat memeriksanya secara berurutan. Ingatlah bahwa menggunakan metode ini akan mencegah output di layar, karena mengarahkannya ke file. Anda biasanya dapat membuka file untuk meninjau bahkan saat sedang dibuat (pastikan untuk tidak mengunci atau menyimpannya).


Contoh file batch dengan beberapa pencatatan:

@echo off
SET DATENOW=%date:~-4,4%-%date:~-10,2%-%date:~-7,2%
SET TIMENOW=%time:~-11,2%.%time:~-8,2%.%time:~-5,2%
SET FILENAME="C:\Logs\Finance Batch %DATENOW% [%TIMENOW%].log"

if not exist "C:\Logs" md C:\Logs

ECHO ---START BATCH FILE---  [%time%]>> %FILENAME%
ECHO Clearing current folder... [%time%] >> %FILENAME%
if exist "C:\Files" rd "C:\Files" /s/q >> %FILENAME%
if not exist "C:\Files" md "C:\Files" >> %FILENAME%

ECHO Copying data from SHAREDOCS... [%time%] >> %FILENAME%
xcopy "\\domain.local\sharedocs\*.*" "C:\Files" /EXCLUDE:exclist.txt /e /c /z /k >> %FILENAME%

ECHO ---BATCH FILE COMPLETE---  [%time%]>> %FILENAME%
ECHO. >> %FILENAME%

+1. Jika itu tumbuh terlalu besar, saya sarankan mencari penampil file teks besar , karena file besar dapat membuat Notepad batuk
Kanada Luke

Whoohoo! Terima kasih! Tapi sekarang saya punya pertanyaan lanjutan ...
Andrew

Jadi perintah pertama saya adalah: c: \ Myapp \ trigger \\ this \ that \ another \ 0 \ 0 * .bin >> c: \ Myapp \ output.txt Ini berfungsi dengan baik. Terima kasih! Tetapi direktori selanjutnya adalah: \\ this \ that \ another \ 0 \ 1 \ dan selanjutnya adalah: \\ this \ that \ another \ 0 \ 2 \ dan seterusnya hingga 278 (maka saya beralih sepenuhnya path) Bagaimana bisa Saya mengaturnya jadi saya tidak perlu menjalankan ini 278 kali? Juga, bagaimana saya bisa tahu kapan prosesnya selesai, karena layar tidak lagi memberi tahu saya? Terima kasih lagi, Andrew
Andrew

Proses selesai ketika perintah berhenti berjalan, itu tidak akan kembali sebelum selesai. Tindak lanjut pertama tampaknya lebih seperti sesuatu yang harus Anda tanyakan dalam pertanyaan baru, sepertinya tidak terkait erat dengan yang satu ini, kecuali jika saya melewatkan sesuatu?
dsolimano

Terima kasih. Saya akan menanyakan tindak lanjut dalam pertanyaan baru, jika perlu. Saya pikir dengan informasi yang Anda berikan kepada saya bahwa saya saya dapat menyelesaikan sisanya sendiri (semoga saja). Terima kasih lagi, Andrew
Andrew
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.