copy
Birleştirilmiş dosyaların sıralamasını değiştireceğine inanamıyorum . Ancak, sonraki self_explaining betiği size yardımcı olabilir:
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
pushd d:\bat\files\folder
REM echo(&echo SHOW files to be merged in different sort order
REM erase newfile.txt 2>NUL
REM @ECHO ON
REM @for %%G in (
REM "/-C" "/O:N" "/O:S" "/O:E" "/O:D /T:C" "/O:D /T:W"
REM ) do dir %%~G *.txt|findstr "\.txt$"
REM @ECHO OFF
echo(&echo RESULT: copy *.txt newfile.txt
erase newfile.txt 2>NUL
rem (optional): to throw away trailing `Ctrl+Z`, use `/B` switch as follows:
rem copy /Y *.txt newfile.txt /B
@ECHO ON
copy /Y *.txt newfile.txt
findstr "^" *.txt
@ECHO OFF
echo(&echo(&echo RESULT: merge *.txt in defined order: change `/O` switch
echo(
type nul> newfile.txt
set /A "_files=0"
for /F "delims=" %%G in ('
dir /B /O:N *.txt
') do @if not "%%G"=="newfile.txt" (
echo(%%~G
set /A "_files+=1"
copy /Y newfile.txt + %%~G newfile.txt /B >NUL
)
echo %_files% file^(s^) merged.
rem (optional): to add trailing `Ctrl+Z`, remove `REM` in next line
REM copy newfile.txt + NUL newfile.txt >NUL
@ECHO ON
findstr "^" *.txt
@ECHO OFF
popd
REM
-Commented code snippet pushd
komutunu izleyen komutların, eğer istenmediyse (tümü REM
kaldırıldıysa) farklı sıralama düzeninde birleştirilecek dosyaları göstereceğini unutmayın . Hata ayıklama amacıyla burada tutuyorum.
Sonuç :
==> D:\bat\SU\1002948.bat
RESULT: copy *.txt newfile.txt
==> copy /Y *.txt newfile.txt
1.txt
2.txt
3.txt
4.txt
1 file(s) copied.
==> findstr "^" *.txt
1.txt:1111
2.txt:2
3.txt:333
4.txt:44
newfile.txt:1111
newfile.txt:2
newfile.txt:333
newfile.txt:44
newfile.txt:→
RESULT: merge *.txt in defined order: change `/O` switch
1.txt
2.txt
3.txt
4.txt
4 file(s) merged.
==> findstr "^" *.txt
1.txt:1111
2.txt:2
3.txt:333
4.txt:44
newfile.txt:1111
newfile.txt:2
newfile.txt:333
newfile.txt:44
==>
Burada arka →
içinde sağa doğru sembol ok newfile.txt
temsil EOF
(dosyanın sonuna, onaltılı 0x1A
, örneğin) Ctrl+ Z.
Copy *.txt newfile.txt
komut, dosyaları kopyalarımdaki gibi listeleyerek, Windows 8'imde alfabetik sırada birleştiriyordir /B /O:N *.txt
. Lütfen sorunuzu düzenleyin ve En Az, Tamamlandı ve Doğrulanabilir bir örnek paylaşın .