Nhờ tư vấn - Phần mềm đổi tên hoặc sắp xếp ngẫu nhiên file | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Nhờ tư vấn Phần mềm đổi tên hoặc sắp xếp ngẫu nhiên file

Santoso

Suppervisor Mod
Thành viên BQT
Mình đang tìm một phần mềm kiểu như sau:
Ví dụ mình có khoảng 300 hình ảnh trong 1 thư mục, mặc định thì chúng sẽ được sắp xếp theo thứ tự mặc định (theo định dạng, hoặc theo tên, ngày tạo).
Giờ mình muốn cho nó sắp xếp theo random thì có phần mềm nào đổi tên hay gì làm được không mọi người.
 

Santoso

Suppervisor Mod
Thành viên BQT
Tôi cho là bạn chưa hiểu gì về cách tạo file, cách quản lý file / thư mục của HĐH, tức là "Directory Entry".​
Cũng có thể, bác có thể hướng dẫn mình thêm không. Cám ơn bác trước.
 

Trong Le

Rìu Vàng
bạn cho sắp xếp theo dung lượng đi, lúc đó nó sẽ hơi lộn xộn 1 tí mà không theo tên hay ngày tháng nữa > sau đó bạn chọn tất cả đổi tên 1 lần luôn thì tên cũng sẽ ngẫu nhiên luôn.
Vậy cho nhanh, chứ tạm thời không biết phần mềm nào.
 

Santoso

Suppervisor Mod
Thành viên BQT
bạn cho sắp xếp theo dung lượng đi, lúc đó nó sẽ hơi lộn xộn 1 tí mà không theo tên hay ngày tháng nữa > sau đó bạn chọn tất cả đổi tên 1 lần luôn thì tên cũng sẽ ngẫu nhiên luôn.
Vậy cho nhanh, chứ tạm thời không biết phần mềm nào.
Cũng khả thi đó, nó cũng ngẫu nhiên đi. Cám ơn bác.
 

tvthoi1984

Rìu Vàng Đôi
Tìm trên google thấy cái này nè Bác.
đưa cái file Bat này vào chung thư mục chứa hình ảnh và chạy nó.
Mã:
@ECHO OFF
REM Authord David Ortiz-Vallejuelo
REM Feel free to use this code or to change anything
REM
REM adds a random number to the name of every file in the directory.
SET TranslationFile=__Translation.txt
SETLOCAL EnableExtensions EnableDelayedExpansion

    REM Rename files
    ECHO You are about to add a random number to the name of every file in the following folder:
    ECHO %~dp0
    ECHO.

    ECHO Type "OK" to continue.
    SET /P Confirm=
    IF /I NOT {!Confirm!}=={OK} (
        ECHO.
        ECHO Aborting :( .
        GOTO :EOF
    )
    ECHO Original Name/Random Name > %TranslationFile%
    ECHO ------------------------- >> %TranslationFile%
    FOR /F "tokens=*" %%A IN ('DIR /A:-D /B') DO (
        IF NOT %%A==%~nx0 (
            SET Use=%%~xA
            SET Name=%%~nA
            SET NewName=!RANDOM!-!Name!!Use!
            ECHO %%A/!NewName!>> %TranslationFile%
            RENAME "%%A" "!NewName!"
           
        )
    )

Hic Hic, nghịch dại mà nó đổi tên mấy cái file trên destop tùm lum rồi
 

Santoso

Suppervisor Mod
Thành viên BQT
Tìm trên google thấy cái này nè Bác.
đưa cái file Bat này vào chung thư mục chứa hình ảnh và chạy nó.
Mã:
@ECHO OFF
REM Authord David Ortiz-Vallejuelo
REM Feel free to use this code or to change anything
REM
REM adds a random number to the name of every file in the directory.
SET TranslationFile=__Translation.txt
SETLOCAL EnableExtensions EnableDelayedExpansion

    REM Rename files
    ECHO You are about to add a random number to the name of every file in the following folder:
    ECHO %~dp0
    ECHO.

    ECHO Type "OK" to continue.
    SET /P Confirm=
    IF /I NOT {!Confirm!}=={OK} (
        ECHO.
        ECHO Aborting :( .
        GOTO :EOF
    )
    ECHO Original Name/Random Name > %TranslationFile%
    ECHO ------------------------- >> %TranslationFile%
    FOR /F "tokens=*" %%A IN ('DIR /A:-D /B') DO (
        IF NOT %%A==%~nx0 (
            SET Use=%%~xA
            SET Name=%%~nA
            SET NewName=!RANDOM!-!Name!!Use!
            ECHO %%A/!NewName!>> %TranslationFile%
            RENAME "%%A" "!NewName!"
          
        )
    )

Hic Hic, nghịch dại mà nó đổi tên mấy cái file trên destop tùm lum rồi
Cám ơn Bác nhiều, để lát làm về em thử. Ngại quá để desktop của Bác thành ra như vậy :D
 

malemkhoang

Rìu Chiến
Hệ thống tệp FAT cổ điển chỉ trả về các tên theo thứ tự chúng xuất hiện trên đĩa và khi một tệp được tạo, nó chỉ được gán cho vị trí có sẵn đầu tiên trong thư mục. Các vị trí sẽ khả dụng khi tệp bị xóa và nếu không có vị trí nào thì cuối cùng một vị trí mới sẽ được sử dụng.

Hệ thống tệp NTFS duy trì nội bộ các mục nhập thư mục theo cấu trúc cây B, điều đó có nghĩa là các tệp tin dẽ được liệt kê theo thứ tự cây B, nếu bạn che một mắt và hứa không tập trung quá kỹ sẽ trông gần như theo thứ tự bảng chữ cái cho tiếng Anh-Mỹ (Nó không theo thứ tự bảng chữ cái đối với hầu hết các ngôn ngữ khác và nó sẽ bị hỏng khi bạn thêm các ký tự có dấu phụ hoặc bất kỳ thứ gì ngoài bảng chữ cái Latinh và bao gồm dấu cách và chữ số!)

Hệ thống tệp ISO 9660 (được sử dụng bởi CD-ROM) yêu cầu các mục nhập thư mục phải được sắp xếp theo từ điển theo điểm mã ASCII. Khá nhiều người đã từ bỏ hệ thống tệp ISO 9660 cơ bản và sử dụng một trong nhiều phần mở rộng của nó, chẳng hạn như Joliet hoặc UDF, do đó bạn có thêm rắc rối cần giải quyết.

Nếu bạn đang nói chuyện với một hệ thống tệp mạng, thì hệ thống tệp ở đầu bên kia của cáp mạng có thể là bất cứ thứ gì, vì vậy ai biết các quy tắc của nó là gì (nếu nó thậm chí có các quy tắc).

Nói vậy thì tôi không hy vọng gì để sắp xếp random tên tệp tin của một thư mục.​
 

Santoso

Suppervisor Mod
Thành viên BQT
Hệ thống tệp FAT cổ điển chỉ trả về các tên theo thứ tự chúng xuất hiện trên đĩa và khi một tệp được tạo, nó chỉ được gán cho vị trí có sẵn đầu tiên trong thư mục. Các vị trí sẽ khả dụng khi tệp bị xóa và nếu không có vị trí nào thì cuối cùng một vị trí mới sẽ được sử dụng.

Hệ thống tệp NTFS duy trì nội bộ các mục nhập thư mục theo cấu trúc cây B, điều đó có nghĩa là các tệp tin dẽ được liệt kê theo thứ tự cây B, nếu bạn che một mắt và hứa không tập trung quá kỹ sẽ trông gần như theo thứ tự bảng chữ cái cho tiếng Anh-Mỹ (Nó không theo thứ tự bảng chữ cái đối với hầu hết các ngôn ngữ khác và nó sẽ bị hỏng khi bạn thêm các ký tự có dấu phụ hoặc bất kỳ thứ gì ngoài bảng chữ cái Latinh và bao gồm dấu cách và chữ số!)

Hệ thống tệp ISO 9660 (được sử dụng bởi CD-ROM) yêu cầu các mục nhập thư mục phải được sắp xếp theo từ điển theo điểm mã ASCII. Khá nhiều người đã từ bỏ hệ thống tệp ISO 9660 cơ bản và sử dụng một trong nhiều phần mở rộng của nó, chẳng hạn như Joliet hoặc UDF, do đó bạn có thêm rắc rối cần giải quyết.

Nếu bạn đang nói chuyện với một hệ thống tệp mạng, thì hệ thống tệp ở đầu bên kia của cáp mạng có thể là bất cứ thứ gì, vì vậy ai biết các quy tắc của nó là gì (nếu nó thậm chí có các quy tắc).

Nói vậy thì tôi không hy vọng gì để sắp xếp random tên tệp tin của một thư mục.​
Cám ơn Bác, mình thử cách của bạn Trọng Lê cũng đạt được mục đích đôi chút. Vậy cũng được rồi.
 

dammage

Rìu Chiến
ý tưởng của tui là tạo 1 số hoặc chuỗi ngẫu nhiên rồi đổi tên file theo số hoặc chuỗi đó, phần mềm có thể giúp được bạn là cái advanced renamer (free, mà muốn trả tiền cũng được)
https://www.advancedrenamer.com/

Untitled.png

quên, vẽ luôn cho bạn cái waypoints cho dễ nhìn

1/bạn bấm vô folders rồi chọn folder chứa các file muốn đổi tên
2/chọn method đổi tên là script
3/nhập vô script sau
JavaScript:
return Math.random()*1000000 + '_' + item.newBasename;
script này tui làm đơn giản thôi còn nhu cầu nào cao hơn nữa thì tính sau, phần tên gốc với phần số ngẫu nhiên sẽ cách nhau bằng dấu underscore, con số 1000000 bạn có thể cho số nào cũng được miễn lớn lớn chút để tránh trùng, ở đây tui cho 1 triệu luôn
4/xong rồi nhấn apply script
5/kiểm tra lại cột new filename, đây là filename mới sẽ được đặt cho các file
6/nếu tất cả ok hết thì bạn nhấn start batch, chỗ window hiện ra bạn tiếp tục nhấn start để bắt đầu rename, xong xuôi

nhìn ở góc trên trái bạn thấy có nút undo batch để undo trong trường hợp bạn đổi ý
 
Sửa lần cuối:

dammage

Rìu Chiến
Mã:
@ECHO OFF
REM Authord David Ortiz-Vallejuelo
REM Feel free to use this code or to change anything
REM
REM adds a random number to the name of every file in the directory.
SET TranslationFile=__Translation.txt
SETLOCAL EnableExtensions EnableDelayedExpansion

    REM Rename files
    ECHO You are about to add a random number to the name of every file in the following folder:
    ECHO %~dp0
    ECHO.

    ECHO Type "OK" to continue.
    SET /P Confirm=
    IF /I NOT {!Confirm!}=={OK} (
        ECHO.
        ECHO Aborting :( .
        GOTO :EOF
    )
    ECHO Original Name/Random Name > %TranslationFile%   <----------------- bỏ dòng này
    ECHO ------------------------- >> %TranslationFile%    <----------------- dòng này
    FOR /F "tokens=*" %%A IN ('DIR /A:-D /B') DO (
        IF NOT %%A==%~nx0 (
            SET Use=%%~xA
            SET Name=%%~nA
            SET NewName=!RANDOM!-!Name!!Use!
            ECHO %%A/!NewName!>> %TranslationFile%    <----------------- dòng này nữa
            RENAME "%%A" "!NewName!"
          
        )
    )
theo tui nên bỏ 3 cái dòng echo ở trên vì nó không cần thiết mà lại sinh ra file rác
tui chạy xong thắc mắc ủa sao cái file batch đâu mất tiêu, hóa ra nó đổi tên chính nó luôn
7L1XX2F.gif
 

Santoso

Suppervisor Mod
Thành viên BQT
ý tưởng của tui là tạo 1 số hoặc chuỗi ngẫu nhiên rồi đổi tên file theo số hoặc chuỗi đó, phần mềm có thể giúp được bạn là cái advanced renamer (free, mà muốn trả tiền cũng được)
https://www.advancedrenamer.com/

Untitled.png

quên, vẽ luôn cho bạn cái waypoints cho dễ nhìn

1/bạn bấm vô folders rồi chọn folder chứa các file muốn đổi tên
2/chọn method đổi tên là script
3/nhập vô script sau
JavaScript:
return Math.random()*1000000 + '_' + item.newBasename;
script này tui làm đơn giản thôi còn nhu cầu nào cao hơn nữa thì tính sau, phần tên gốc với phần số ngẫu nhiên sẽ cách nhau bằng dấu underscore, con số 1000000 bạn có thể cho số nào cũng được miễn lớn lớn chút để tránh trùng, ở đây tui cho 1 triệu luôn
4/xong rồi nhấn apply script
5/kiểm tra lại cột new filename, đây là filename mới sẽ được đặt cho các file
6/nếu tất cả ok hết thì bạn nhấn start batch, chỗ window hiện ra bạn tiếp tục nhấn start để bắt đầu rename, xong xuôi

nhìn ở góc trên trái bạn thấy có nút undo batch để undo trong trường hợp bạn đổi ý
Để thử xem, cám ơn bạn nhiều.
 

malemkhoang

Rìu Chiến
Đọc lại toàn bộ các cmt thì tôi cho rằng tôi nhận thức chưa đầy đủ về vấn đề này. XIn lỗi mọi người về sự bất tiện này.
Hiện tại, tôi cho rằng việc sắp xếp tệp theo random là không khả thi. Việc đổi tên tệp theo random (number) là khả thi.
Đối với CMD chúng ta có biến %RANDOM%: 0 < RANDOM < 32767. Nhưng tôi cho là không hiệu quả, mặc dù năng lực của RAMDOM có thể vươn tới 65536. Tài liệu tham khảo: [Random Numbers - Windows CMD - SS64.com](https://ss64.com/nt/syntax-random.html)​

Tôi đã thử đổi tên tệp trên Total commander Ultima Prime và Total commander bằng random number thấy hiệu quả, không cần phải viết thêm script hoặc lệnh gì khác.
 

pTalent

Búa Gỗ Đôi
ý tưởng của tui là tạo 1 số hoặc chuỗi ngẫu nhiên rồi đổi tên file theo số hoặc chuỗi đó, phần mềm có thể giúp được bạn là cái advanced renamer (free, mà muốn trả tiền cũng được)
https://www.advancedrenamer.com/

Untitled.png

quên, vẽ luôn cho bạn cái waypoints cho dễ nhìn

1/bạn bấm vô folders rồi chọn folder chứa các file muốn đổi tên
2/chọn method đổi tên là script
3/nhập vô script sau
JavaScript:
return Math.random()*1000000 + '_' + item.newBasename;
script này tui làm đơn giản thôi còn nhu cầu nào cao hơn nữa thì tính sau, phần tên gốc với phần số ngẫu nhiên sẽ cách nhau bằng dấu underscore, con số 1000000 bạn có thể cho số nào cũng được miễn lớn lớn chút để tránh trùng, ở đây tui cho 1 triệu luôn
4/xong rồi nhấn apply script
5/kiểm tra lại cột new filename, đây là filename mới sẽ được đặt cho các file
6/nếu tất cả ok hết thì bạn nhấn start batch, chỗ window hiện ra bạn tiếp tục nhấn start để bắt đầu rename, xong xuôi

nhìn ở góc trên trái bạn thấy có nút undo batch để undo trong trường hợp bạn đổi ý
New Name gõ <rand> là được rồi fen, khỏi dùng script
imagea4037e114edb88d1.png
 

pTalent

Búa Gỗ Đôi
Đọc lại toàn bộ các cmt thì tôi cho rằng tôi nhận thức chưa đầy đủ về vấn đề này. XIn lỗi mọi người về sự bất tiện này.
Hiện tại, tôi cho rằng việc sắp xếp tệp theo random là không khả thi. Việc đổi tên tệp theo random (number) là khả thi.
Đối với CMD chúng ta có biến %RANDOM%: 0 < RANDOM < 32767. Nhưng tôi cho là không hiệu quả, mặc dù năng lực của RAMDOM có thể vươn tới 65536. Tài liệu tham khảo: [Random Numbers - Windows CMD - SS64.com](https://ss64.com/nt/syntax-random.html)​

Tôi đã thử đổi tên tệp trên Total commander Ultima Prime và Total commander bằng random number thấy hiệu quả, không cần phải viết thêm script hoặc lệnh gì khác.
Lỡ mở Total Commander rồi cho bác 1 hình minh họa :))

nZ7yaVM.png
 

dammage

Rìu Chiến
New Name gõ <rand> là được rồi fen, khỏi dùng script
imagea4037e114edb88d1.png
cách này gọn nhưng tui thích cách kia hơn, chuỗi random có thể là digit hoặc character với độ dài tùy ý
7L1XX2F.gif


Tôi đã thử đổi tên tệp trên Total commander Ultima Prime và Total commander bằng random number thấy hiệu quả, không cần phải viết thêm script hoặc lệnh gì khác.​
thằng này tui không xài nên không biết, nó có đổi tên file bằng cách thêm prefix vào tên gốc hông bạn
 
Sửa lần cuối:

malemkhoang

Rìu Chiến
Tìm hiểu thêm về cách đổi tên tệp trên Total Commander Ultima Prime, tôi thấy khá thú vị. Ngoài việc đổi tên theo random number, nó còn đổi tên theo CRC32 hoặc MD5 hoặc SHA1. Cái CRC32 trông ngắn gọn và đẹp.​
@dammage
Việc vẽ rắn thêm chân là thoải mái bạn à. Đằng trước, đằng sau không vấn đề gì, chỉ còn cái limit chiều dài tên tệp mà thôi, không ai vượt qua được.​
 

Santoso

Suppervisor Mod
Thành viên BQT
Cám ơn các Bác đã giúp đỡ, mình đã đổi được theo ý muốn. {beauty}
 


Top