Administrator
Administrator
Chúng ta có 1 thư mục với nhiều file và thư mục con . Dể thống kê tên tất cả các thứ cho ra 1 list text .
Chỉ cần chạy 1 file.bat với nội dung đơn giản như sau :
Nhược điểm lớn nhất mình chưa biết khắc phục là nó ko hổ trợ unicode (tên file có dấu tiếng Việt bị lỗi )
Chúc tất cả vui với trò chơi này
Thêm lệnh "chcp 65001" sẽ dùng được unicode
Chịu khó học btach script để cho cho xử lý chuyên nghiệp hơn với các tính huống khác nhau
Còn code trên dir /b>list.txt lấy luôn cả tên folder và tên file danhmuc.txt và file batch vô luôn kêt quả
listfile.cmd (đánh số thứ tự)
Trong tệp listfile.cmd
Bổ sung thêm lệnh:
vào sau câu lệnh:
thành:
là thành công mỹ mãn.
:sogood:
Sửa thành chcp 65001 1>nul cho đẹp
Vẫn chưa hài lòng cho lắm việc hiển thị tên Unicode trong Command Prompt trên XP (Mặc dù đã chuyển sang Font Lucida Console nhưng Font vẫn chưa được chuẩn với các Kí tự có dấu Tiếng Việt cho lắm)
cmdutf8.cmd (kịch bản tự đông patch cmd.exe cho XP, download thêm file bwpatch.exe để chung thư mục, Win 7 trở lên không cần patch, sau khi patch, lưu file với Encoding: ANSI, nếu lưu UTF-8 vẫn chạy nhưng echo off sẽ không còn hiệu lực)
Chỉ cần chạy 1 file.bat với nội dung đơn giản như sau :
Mở notepad viết lệnh trên lưu lại với tên mucluc.bat , copy file bat vào thư mục nào cần tạo mục lục , chạy file bat nó sẽ cho ta 1 file text với đầy đủ các tên .dir /b > mucluc.txt
Nhược điểm lớn nhất mình chưa biết khắc phục là nó ko hổ trợ unicode (tên file có dấu tiếng Việt bị lỗi )
Chúc tất cả vui với trò chơi này
Thêm lệnh "chcp 65001" sẽ dùng được unicode
Mã:
chcp 65001
dir /b > mucluc.txt
locb;23867134 nói:Hay quá , bạn có thể thêm 1 lệnh gì đó để khi xuất file text nó tự đánh số thứ tự luôn càng tiện lợi hơn nữa
Chịu khó học btach script để cho cho xử lý chuyên nghiệp hơn với các tính huống khác nhau
Còn code trên dir /b>list.txt lấy luôn cả tên folder và tên file danhmuc.txt và file batch vô luôn kêt quả
listfile.cmd (đánh số thứ tự)
Mã:
@echo off
cls
title Get list filename on directory
setlocal enableextensions enabledelayedexpansion
color 1f
mode con lines=40 cols=100
if exist list.txt del list.txt
set /a count=0
set scanfolder=%cd%
echo.
set /p scanfolder= Path (default current directory):
echo.
cls
echo.
echo Current: !scanfolder!
echo.
echo Process:
echo.
if not exist "!scanfolder!" goto miss
for /f "tokens=*" %%i in ('dir /b "!scanfolder!"') do (if not "%%i" == "listfile.cmd" (if not "%%~xi" == "" (set /a count+=1
echo +^) !count!. %%i
echo !count!. %%i>>list.txt
)
)
)
echo.
echo Output: list.txt
echo.
goto end
:miss
echo Directory is missing
echo.
:end
echo Press any key to exits
pause 1>nul
Trong tệp listfile.cmd
Bổ sung thêm lệnh:
Mã:
chcp 65001
Mã:
mode con lines=40 cols=100
Mã:
mode con lines=40 cols=100
chcp 65001
:sogood:
Sửa thành chcp 65001 1>nul cho đẹp
Vẫn chưa hài lòng cho lắm việc hiển thị tên Unicode trong Command Prompt trên XP (Mặc dù đã chuyển sang Font Lucida Console nhưng Font vẫn chưa được chuẩn với các Kí tự có dấu Tiếng Việt cho lắm)
cmdutf8.cmd (kịch bản tự đông patch cmd.exe cho XP, download thêm file bwpatch.exe để chung thư mục, Win 7 trở lên không cần patch, sau khi patch, lưu file với Encoding: ANSI, nếu lưu UTF-8 vẫn chạy nhưng echo off sẽ không còn hiệu lực)
Mã:
@echo off
cls
title Patching cmd.exe XP fix chcp 65001
setlocal enableextensions enabledelayedexpansion
color 1f
mode con lines=40 cols=100
echo.
echo Process:
echo.
echo +^) patch cmd.exe with chcp 65001 ^(cmdutf8.exe^)
echo.
echo # Patch XP's CMD.EXE ^(5.1.2600.5512^) to work with UTF-8 batch files.>cmd-utf8-new.patch
echo # Updated 19 may 2014>>cmd-utf8-new.patch
echo. >>cmd-utf8-new.patch
echo File: cmd.exe>>cmd-utf8-new.patch
echo 005E57: E8C49B010090 [ FF155811D04A ]>>cmd-utf8-new.patch
echo 00A477: E8A455010090 [ FF155811D04A ]>>cmd-utf8-new.patch
echo 0162E6: E83597000090 [ FF155811D04A ]>>cmd-utf8-new.patch
echo 01A3A5: E87656000090 [ FF155811D04A ]>>cmd-utf8-new.patch
echo 01C2DD: E83E37000090 [ FF155811D04A ]>>cmd-utf8-new.patch
echo 01FA20: 8B44E40485C07519687C49D04AFF153C [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo 11D04A68AC06D24A50FF153811D04AFF [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo D03D35C4000074570F8727 [ 0000000000000000000000 ]>>cmd-utf8-new.patch
echo 01FA4E: 83F82A744C3D2CC4000072153D2EC400 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo 00763E3D31C4000074373D33C4000074 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo 30FF255811D04A3DC8CE000074233D98 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo D60000741C3DAADE000072E53DB3DE00 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo 00760E3DE8FD000072D73DE9FD000077 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo D0C644E40800FF255811D04A00004765 [ 00000000000000000000000000000000 ]>>cmd-utf8-new.patch
echo 74414350 [ 00000000 ]>>cmd-utf8-new.patch
copy %systemroot%\system32\cmd.exe 1>nul
bwpatchw.exe cmd.exe -f cmd-utf8-new.patch
copy /y cmd.exe %systemroot%\system32\cmdutf8.exe 1>nul 2>nul
del /q cmd-utf8-new.patch 1>nul
del /q cmd.exe 1>nul
echo +^) register cmdutf8.exe
echo.
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cmd.exe" /v "Debugger" /d "%systemroot%\system32\cmdutf8.exe" /f 1>nul
echo Successful patch
echo.
pause 1>nul