ฉันไม่copy
อยากจะเชื่อเลยว่าจะเปลี่ยนลำดับการจัดเรียงของไฟล์ที่ถูกผสาน อย่างไรก็ตามสคริปต์self_explainingถัดไปอาจช่วยได้:
@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
โค้ดต่อไปนี้ - ประกอบpushd
จะแสดงไฟล์ที่จะผสานในการเรียงลำดับที่แตกต่างกันหากไม่ได้คอมเมนต์ ( REM
ลบออกทั้งหมด 7 ) ฉันเก็บไว้ที่นี่เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง
ผลลัพธ์ :
==> 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
==>
ที่นี่ต่อท้าย→
ชี้ไปทางขวาลูกศรสัญลักษณ์newfile.txt
แทนEOF
(จุดสิ้นสุดของแฟ้มฐานสิบหก0x1A
) คือ+CtrlZ
Copy *.txt newfile.txt
คำสั่งที่แปลก: ผสานไฟล์ตามลำดับตัวอักษรใน Windows 8 ของฉันโดยแสดงรายการไฟล์ที่คัดลอกdir /B /O:N *.txt
มา โปรดแก้ไขคำถามของคุณและแบ่งปันตัวอย่างที่น้อยที่สุดสมบูรณ์และตรวจสอบได้