का उपयोग कर एकाधिक CSV फ़ाइलों को विलय करना हैलो मैं पावरहेल स्क्रिप्ट की तलाश में हूं जो सभी सीएसवी फ़ाइलों को एक निर्देशिका में एक टेक्स्ट फ़ाइल (.txt) में विलय करेगा। सभी सीएसवी फाइलों में एक ही शीर्षलेख होता है जो हमेशा प्रत्येक फ़ाइल की पहली पंक्ति में संग्रहीत होता है। इसलिए मुझे पहली फ़ाइल से हेडर लेना होगा, लेकिन बाकी फ़ाइलों में पहली पंक्ति छोड़ी जानी चाहिए। मैं बैच फ़ाइल ढूंढने में सक्षम था जो मुझे वही कर रहा है जो मुझे चाहिए, लेकिन मेरे पास एक ही निर्देशिका में 4000 से अधिक सीएसवी फाइलें हैं और नौकरी करने में 45 मिनट से ज्यादा समय लगता है।PowerShell
@echo off
ECHO Set working directory
cd /d %~dp0
Deleting existing combined file
del summary.txt
setlocal ENABLEDELAYEDEXPANSION
set cnt=1
for %%i in (*.csv) do (
if !cnt!==1 (
for /f "delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
) else (
for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
)
set /a cnt+=1
)
कोई सुझाव है कि पावरहेल स्क्रिप्ट कैसे बनाएं जो इस बैच कोड से अधिक कुशल होगा?
धन्यवाद।
जॉन
यह कोड लगभग वही कर रहा है जो मुझे चाहिए। और यह काफी तेज़ है लेकिन मुझे केवल पहली फ़ाइल से हेडर (पहली पंक्ति) पढ़ने की आवश्यकता है। अन्य सभी फ़ाइलों में पहली पंक्ति छोड़ी जानी चाहिए। get-childItem। * .csv | foreach {[System.IO.File] :: AppendAllText ("। \ summary.txt", [System.IO.File] :: ReadAllText ($ _। पूर्णनाम))} – john50
एक सेकंड lemme इस पर काम करते हैं। – kemiller2002
बहुत बहुत धन्यवाद, बहुत अच्छा काम। – john50