Làm cách nào tôi có thể tự động tạo danh sách các thư mục được đặt tên trong Windows?


13

Vì vậy, tôi đang học một khóa học trực tuyến có hàng trăm bài giảng phụ. Tôi cần tải về mã nguồn cho mỗi bài giảng trong một thư mục con tương ứng. Với hơn 120 bài giảng, việc tạo một thư mục con từng cái một là một quá trình khó khăn.

Đây là cấu trúc thư mục hiện tại của tôi:

nhập mô tả hình ảnh ở đây

Có cách nào để tôi có thể tạo tất cả các thư mục con này cùng một lúc, cùng với tên thích hợp, thông qua một tệp bó hoặc một cái gì đó tương tự.


@WesSayeed Tôi không chắc ý của bạn là gì. Nó sẽ không xóa tất cả các thư mục? Tôi đang tìm cách tạo các thư mục từ 9 đến 122 (hoặc bao nhiêu số bài giảng đang có).
Manish Giri

Vì bạn đặc biệt đề cập đến các tệp tập lệnh và tập lệnh, tôi sẽ không đăng bài này dưới dạng câu trả lời, nhưng những người dùng siêu thực sự biết rằng việc có được công cụ phù hợp cho công việc thay vì tự viết là dễ dàng hơn nhiều;). Chỉ cần sử dụng một công cụ đổi tên và bạn có thể tìm ra điều này trong vòng chưa đầy một phút, bao gồm cả việc tải xuống. Cá nhân tôi đã sử dụng Rename Masterhàng loạt Đổi tên tiện ích (chứa quảng cáo) và cả hai đều có thể xử lý việc này và nhiều thao tác tệp và thư mục gây phiền nhiễu khác. (Tôi không liên kết với một trong hai công cụ.)
Lilienthal

Sử dụng một chương trình như getright để tải xuống. Nó có một phiên bản miễn phí. Mỗi tập tin nên được tải về nhà thích hợp của nó.
JDługosz

Câu trả lời:


29

Làm thế nào tôi có thể tạo tất cả các thư mục con này cùng một lúc, bằng cách sử dụng sơ đồ đặt tên của mình?

Nếu tôi tạo các thư mục con trong một thư mục cụ thể, chẳng hạn như C: \ Dropbox \ Development, tôi có cần cd vào thư mục đó trước không? Giả sử tôi đang sử dụng shell cmd?

Để tạo các thư mục con (thư mục con) trong một thư mục cụ thể (đó không phải là thư mục hiện tại), bạn có thể thực hiện một trong các thao tác sau:

  • cd C:\Dropbox\Development đầu tiên hoặc
  • Thay đổi md Lec-%%ilệnh thành md C:\Dropbox\Development\Lec-%%i.

Ghi chú:

  • mkdirlà một từ đồng nghĩa cho mdvà có thể được sử dụng ở vị trí của nó.

Dưới đây tôi hiển thị cả hai lựa chọn thay thế, đầu tiên từ cmdshell (dòng lệnh) và thứ hai bằng cách sử dụng tệp bó.

Như một phần thưởng (mặc dù không được yêu cầu trong câu hỏi ban đầu) cũng có một bashsự thay thế vỏ.


Từ một cmdcái vỏ:

cd C:\Dropbox\Development
for /l %i in (9,1,120) do md Lec-%i

hoặc là

for /l %i in (9,1,120) do md C:\Dropbox\Development\Lec-%i

Từ một tệp bó:

@echo off
cd C:\Dropbox\Development
for /l %%i in (9,1,120) do md Lec-%%i

Hoặc là

@echo off
for /l %%i in (9,1,120) do md C:\Dropbox\Development\Lec-%%i

Ghi chú:

  • 9là số bắt đầu. Thay đổi nếu cần thiết.
  • 1là bước Đừng thay đổi điều này.
  • 120số kết thúc. Thay đổi nếu cần thiết cho số lượng thư mục cuối cùng bạn yêu cầu.
  • Để tạo tập tin trong thư mục khác, bạn có thể

    • cd C:\Dropbox\Development\Lec-%%i đầu tiên hoặc
    • thay đổi mdlệnh thành md C:\Dropbox\Development\Lec-%%i.

Có cách nào để làm điều tương tự cho Mac OSX từ thiết bị đầu cuối Mac không?

Từ một bashcái vỏ:

for i in {9..120}; do mkdir Lec-$i; done; 

Hoặc (đối với phiên bản di động hơn)

for i in `seq 9 120`; do mkdir Lec-$i; done;

Đọc thêm

  • Một chỉ mục AZ của dòng lệnh Windows CMD - Một tài liệu tham khảo tuyệt vời cho tất cả những thứ liên quan đến dòng cmd của Windows.
  • cho - Có điều kiện thực hiện một lệnh nhiều lần.
  • md - Tạo thư mục - Tạo một thư mục mới.

Nếu tôi tạo các thư mục con trong một thư mục cụ thể, chẳng hạn như C:\Dropbox\Development, tôi có cần đến cdthư mục đó trước không? Giả sử tôi đang sử dụng cmdshell? Và cảm ơn rất nhiều!
Manish Giri

@ Có, bạn cần vào cdthư mục trước.
LPChip

Không. Chỉ cần thay đổi md Lec-%%ithànhmd C:\Dropbox\Development\Lec-%%i
DavidPostill

Thay vì mdtại sao không sử dụng mkdirtrên Windows? Bằng cách đó, nó phù hợp với * nix và một sự khác biệt ít hơn để mọi người nhớ.
dùng541686

@Mehrdad Tôi sẽ thêm một ghi chú cho hiệu ứng đó.
DavidPostill

22

Có một cách dễ dàng khác, cho số lượng thư mục hạn chế. Có thể hữu ích ở đây Hoặc cho người khác.

Trong Windows, chúng ta có thể tạo tên thư mục được đánh số bằng cách tạo thư mục "lec (1)" và sao chép dán bao nhiêu lần chúng ta muốn, nếu chúng ta dán 10 lần sẽ có 11 thư mục có tên "speech (1)" thành "lec ( 10) - Sao chép "

Chỉ có một mẹo nhỏ ở đây là thư mục đầu tiên phải bao gồm dấu ngoặc đơn (n), trong đó n là số bắt đầu đánh số.

Windows bao gồm "- sao chép" tại và tên thư mục đã dán "lec (1) - Sao chép" :(

Nếu bạn không thích nó, chỉ cần chọn tất cả và đổi tên lec đầu tiên (1) -> lec- (1) hoặc bất cứ điều gì.

Tất cả tên của thư mục sẽ được điều chỉnh và "- sao chép" sẽ bị xóa;)

  • Ctrl + C - Sao chép
  • Ctrl + V - Dán
  • F2 - đổi tên
  • Nhập - để kết thúc đổi tên.
  • ESC- để hủy bỏ đổi tên.
  • Ctrl + A hoặc Ctrl + UP để chọn thư mục.

nhập mô tả hình ảnh ở đây


2
+1 để dạy tôi điều mà tôi không biết. :)
LPChip

Hoạt hình (".gif") là một liên lạc tốt đẹp, nhưng lặp đi lặp lại nhiều lần và lặp đi lặp lại ... vô tận, rất khó chịu.
Kevin Fegan

4
@KevinFegan Tôi không đồng ý. GIF được lặp lại đảm bảo người dùng (bạn) có thể thực sự nhìn thấy hình ảnh động mà không cần tải lại trang và cuộn xuống nhanh chóng để thử và xem nó. Hầu hết các trình duyệt không cung cấp các nút điều khiển GIF.
phyrfox

câu trả lời tuyệt vời và chỉ dừng lại xem sau khi bạn nhận được điểm!
harry

Điều này sẽ không hoạt động nếu bạn không muốn dấu ngoặc trong tên thư mục của bạn. Ví dụ: tôi có thể tạo danh sách các thư mục: x (0), x (1), x (2), ... x (N). Nhưng tôi KHÔNG thể tạo danh sách: x0, x1, x2, ... xN
Gil Epshtain 20/03/18

2

Điều này sẽ không tốt hơn một kịch bản cho kịch bản cụ thể của bạn, nhưng thật tuyệt khi biết điều này khi tên thư mục của bạn không liên quan: bạn có thể tạo nhiều thư mục từ dòng lệnh bằng cách tách chúng bằng khoảng trắng:

C:\temp\animals>dir
 Volume in drive C is Windows
 Volume Serial Number is 82CB-BB0F

 Directory of C:\temp\animals

11/16/2015  03:55 PM    <DIR>          .
11/16/2015  03:55 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  1,636,846,243,840 bytes free

C:\temp\animals>mkdir cats dogs penguins

C:\temp\animals>dir
 Volume in drive C is Windows
 Volume Serial Number is 82CB-BB0F

 Directory of C:\temp\animals

11/16/2015  03:55 PM    <DIR>          .
11/16/2015  03:55 PM    <DIR>          ..
11/16/2015  03:55 PM    <DIR>          cats
11/16/2015  03:55 PM    <DIR>          dogs
11/16/2015  03:55 PM    <DIR>          penguins
               0 File(s)              0 bytes
               5 Dir(s)  1,636,846,178,304 bytes free

3
Thật tuyệt khi bạn chỉ ra điều này, nhưng nó không trả lời được câu hỏi ...
DavidPostill

1
@DavidPostill. Tôi đồng ý, đó là lý do tại sao tôi nói nó theo cách tôi đã làm. Nhưng nó tốt hơn nhiều so với việc tạo các thư mục 1 bằng 1. Có lẽ tôi nên xóa câu trả lời và đưa ra nhận xét?
TTT

1

Bạn có thể thấy rằng nếu bạn tạo các thư mục được đánh số như thế này, chúng sẽ không hiển thị theo thứ tự sắp xếp (dự kiến) phù hợp:

C:\Dropbox\Development> dir /b
Lec-10
Lec-100
Lec-101
Lec-102
Lec-103
Lec-104
Lec-105
Lec-106
Lec-107
Lec-108
Lec-109
Lec-11
Lec-110
Lec-111
Lec-112
Lec-113
Lec-114
Lec-115
Lec-116
Lec-117
Lec-118
Lec-119
Lec-12
Lec-120
Lec-13
Lec-14
Lec-15
Lec-16
Lec-17
Lec-18
Lec-19
Lec-20
Lec-21
...
Lec-89
Lec-9
Lec-90
Lec-91
...

Vấn đề là, phần số của tên thư mục có chiều rộng thay đổi, ảnh hưởng đến cách sắp xếp các thư mục.

Nếu điều quan trọng với bạn là các thư mục được sắp xếp hợp lý, hãy sử dụng tệp bó bên dưới để tạo các thư mục có phần được đánh số của các tên thư mục được đệm bằng "0" (số 0) để tất cả các số có cùng độ dài, như sau:

C:\Dropbox\Development> dir /b
Lec-009
Lec-010
Lec-011
Lec-012
Lec-013
Lec-014
Lec-015
Lec-016
Lec-017
Lec-018
Lec-019
Lec-020
Lec-021
...

Đây là tập tin bó:

@echo off

for /L %%f in (9,1,120) do call :work 000%%f
goto :EOF


:work

set "dx=%~1"
set "dx=%dx:~-3%"

md "C:\Dropbox\Development\Lec-%dx%" >nul 2>&1

set "dx="
goto :EOF

1
Làm thế nào họ sắp xếp là phụ thuộc vào công cụ. Explorer (và hầu hết các trình quản lý tệp khác) sẽ sắp xếp chúng theo trực giác, Lec-10đến sau Lec-9.
afrazier

Explorer sử dụng sắp xếp tự nhiên, do đó 2sẽ được đặt trước 10như mong đợi (nếu bạn nhìn vào ảnh chụp màn hình 9 của OP cũng được sắp xếp trước 10). Chỉ dirbị vấn đề đó và cần 0miếng đệm, nhưng OP không biết nhiều về dòng lệnh nên tôi không nghĩ nó sẽ là vấn đề
phuclv

@phuclv - Vâng, như bạn nói, "OP không biết nhiều về dòng lệnh ...". Đó là lý do tại sao tôi viết câu trả lời này. Để cho OP biết những gì mong đợi và cung cấp một giải pháp (câu trả lời). Tôi có thể tưởng tượng OP sử dụng câu trả lời tuyệt vời của DavidPostill, sau đó trở nên bối rối khi thấy dircác thư mục liệt kê không theo thứ tự. Windows Như bạn và afrazier đã đề cập, Windows Explorer sẽ sắp xếp / liệt kê các thư mục một cách chính xác, nhưng OP đang tìm kiếm một batchgiải pháp có nghĩa là chúng sẽ (rất có thể) hoạt động từ command prompt.
Kevin Fegan

0

Bạn có thể chạy tệp bó này trong cùng thư mục với tệp. Mỗi tệp sẽ được chuyển vào một thư mục cùng tên.

for /f "delims=" %%a in ('dir /b') do (
if not "%%~fa"=="%~f0" (
md "%%~na" 2>nul
if exist "%%a" move "%%~na.*" "%%~na"
)
)

Tôi sử dụng nó với một cảnh báo dưới đây để tránh sử dụng vô tình.

@echo off
echo.
set sure=
set /p sure=you want to put each file in this folder into their own folders? 
if /i "%sure%"=="" exit
if /i "%sure:~0,1%"=="n" exit
if /i not "%sure:~0,1%"=="y" (exit) else (echo.&echo are you sure? Close window to cancel or..)
echo.&pause 
for /f "delims=" %%a in ('dir /b') do (
if not "%%~fa"=="%~f0" (
md "%%~na" 2>nul
if exist "%%a" move "%%~na.*" "%%~na"
)
)

-1

Trước hết tôi đã không đọc toàn bộ vấn đề của bạn ... nhưng theo như tôi có thể tìm ra ... bạn muốn đổi tên các thư mục trên cơ sở danh sách ... có hai phương pháp

Phương pháp-1 -Nếu bạn không có danh sách thư mục ... có cách giải quyết ... bạn cần truy cập macOS với cây Thư mục này ... và chỉ cần sao chép toàn bộ cây thư mục ... Những gì macOS sẽ làm là họ sao chép nội dung cũng như danh sách tất cả các thư mục của bạn về mặt danh sách cũng ... hiện dán vào TextEdit hoặc bất kỳ phần mềm nào tương tự Notepad.

-Bây giờ tôi giả sử bạn có danh sách thư mục đó với bạn ... bạn chỉ cần một phần mềm bên thứ ba để thực hiện công việc (Bây giờ tất cả các bước dành cho Windows) https://www.rename-expert.com -Trong điều khoản khi sử dụng phần mềm này, bạn phải tạo thư mục mới, thư mục mới-2, thư mục mới-4 theo ý muốn.

-Bây giờ trong Đổi tên chuyên gia, có một tùy chọn để đổi tên các thư mục từ cơ sở của danh sách.

-Boom bạn đã hoàn thành.

Phương pháp-2 -Nếu bạn muốn tạo bản sao nhân bản của toàn bộ cây thư mục mà không có tệp trong đó.

-Beyond So sánh là phần mềm bạn cần nó. https://www.scootersoftware.com/support.php?zz=kb_copyfolder cấu trúc


Điều này giả định không chính xác người dùng đã có cây thư mục đầy đủ. Có những giải pháp tốt hơn không yêu cầu phần mềm bổ sung và / hoặc chưa biết.
jiggunjer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.