Bagaimana saya bisa membuat daftar folder bernama di Windows secara otomatis?

13

Jadi, saya belajar kursus online yang memiliki ratusan sub kuliah. Saya perlu mengunduh kode sumber untuk setiap kuliah di sub-folder yang sesuai. Dengan lebih dari 120 kuliah, membuat sub-folder satu per satu adalah proses yang melelahkan.

Inilah struktur folder saya saat ini:

masukkan deskripsi gambar di sini

Apakah ada cara saya bisa membuat semua sub-folder ini sekaligus, bersama dengan nama yang tepat, melalui file batch atau yang serupa.

Manish Giri
sumber
@ Willesayeed Saya tidak yakin apa yang Anda maksud. Bukankah itu hanya menghapus semua folder? Saya mencari untuk membuat folder dari 9 sampai 122 (atau berapa banyak jumlah kuliah yang ada di sana).
Manish Giri
Karena Anda secara khusus menyebutkan file batch dan skrip, saya tidak akan memposting ini sebagai jawaban, tetapi pengguna super nyata tahu bahwa lebih mudah untuk hanya mendapatkan alat yang tepat untuk pekerjaan itu daripada menulis sendiri;). Cukup gunakan alat penggantian nama dan Anda mungkin dapat mencari tahu ini dalam waktu kurang dari satu menit, termasuk unduhan. Saya pribadi telah menggunakan Rename Master dan Bulk Rename Utility (berisi iklan) dan keduanya dapat menangani ini dan banyak operasi file dan folder lainnya yang mengganggu. (Saya tidak berafiliasi dengan salah satu alat.)
Lilienthal
Gunakan program seperti getright untuk mengunduh. Ini memiliki versi gratis. Setiap file harus diunduh ke rumah yang semestinya.
JDługosz

Jawaban:

29

Bagaimana saya bisa membuat semua sub-folder ini sekaligus, menggunakan skema penamaan saya?

Jika saya membuat sub-folder dalam direktori tertentu, seperti C: \ Dropbox \ Development, apakah saya perlu melakukan cd ke direktori itu terlebih dahulu? Dengan asumsi saya menggunakan shell cmd?

Untuk membuat sub-folder (sub-direktori) di direktori tertentu (yang bukan direktori saat ini), Anda dapat melakukan salah satu dari yang berikut:

  • cd C:\Dropbox\Development pertama atau
  • Ubah md Lec-%%iperintah menjadi md C:\Dropbox\Development\Lec-%%i.

catatan:

  • mkdiradalah sinonim untuk mddan dapat digunakan sebagai gantinya.

Di bawah ini saya menunjukkan kedua alternatif, pertama dari cmdshell (baris perintah), dan kedua menggunakan file batch.

Sebagai bonus (meskipun tidak diminta dalam pertanyaan asli) ada bashalternatif shell juga.


Dari cmdshell:

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

atau

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

Dari file batch:

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

Atau

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

Catatan:

  • 9adalah nomor awal. Ubah jika perlu.
  • 1adalah langkahnya. Jangan ubah ini.
  • 120nomor akhir. Ubah jika perlu ke nomor direktori terakhir yang Anda butuhkan.
  • Untuk membuat file di direktori lain, Anda bisa

    • cd C:\Dropbox\Development\Lec-%%i pertama atau
    • ubah mdperintah menjadi md C:\Dropbox\Development\Lec-%%i.

Apakah ada cara untuk melakukan hal serupa untuk Mac OSX dari terminal Mac?

Dari bashshell:

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

Atau (untuk versi yang lebih portabel)

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

Bacaan lebih lanjut

DavidPostill
sumber
Jika saya membuat sub-folder dalam direktori tertentu, seperti C:\Dropbox\Development, apakah saya harus ke cddirektori itu terlebih dahulu? Dengan asumsi saya menggunakan cmdshell? Dan terima kasih banyak!
Manish Giri
@ Bahasa Spanyol ya, Anda harus ke cdfolder terlebih dahulu.
LPChip
Tidak. Ubah saja md Lec-%%ikemd C:\Dropbox\Development\Lec-%%i
DavidPostill
Alih-alih mdmengapa tidak digunakan mkdirdi Windows? Dengan cara itu konsisten dengan * nix dan satu perbedaan yang lebih sedikit untuk diingat orang.
user541686
@Mehrdad Saya akan menambahkan catatan untuk efek itu.
DavidPostill
22

Ada cara mudah lain, untuk jumlah folder terbatas. Mungkin bermanfaat di sini atau untuk orang lain.

Di Windows kita bisa membuat nama folder bernomor dengan membuat folder "lec (1)" dan menyalinnya berapa kali kita mau, jika kita tempel 10 kali akan ada 11 folder dengan nama "lect (1)" hingga "lec ( 10) - Salin "

Satu-satunya trik di sini adalah bahwa folder pertama harus menyertakan tanda kurung (n), di mana n adalah nomor dari mana penomoran dimulai.

Windows termasuk "- salin" di dan dari nama folder yang disisipkan "lec (1) - Salin" :(

Jika Anda tidak menyukainya, cukup pilih semua dan beri nama lec pertama (1) -> lec- (1) atau apa pun.

Semua nama folder akan disesuaikan dan "- salin" akan dihapus;)

  • Ctrl + C - Salin
  • Ctrl + V - Tempel
  • F2 - ganti nama
  • Masukkan - untuk menyelesaikan penggantian nama.
  • ESC- untuk membatalkan penggantian nama.
  • Ctrl + A atau Ctrl + UP untuk memilih folder.

masukkan deskripsi gambar di sini

syahid
sumber
2
+1 untuk mengajari saya sesuatu yang tidak saya ketahui. :)
LPChip
Animasi (".gif") adalah sentuhan yang bagus, tetapi mengulanginya berulang-ulang ... tanpa henti, sangat mengganggu.
Kevin Fegan
4
@KevinFegan Saya tidak setuju. GIF Looped memastikan pengguna (Anda) dapat benar-benar melihat animasi tanpa memuat ulang halaman dan menggulir ke bawah dengan cepat untuk mencoba dan melihatnya. Sebagian besar browser tidak menawarkan tombol kontrol GIF.
phyrfox
jawaban yang mengagumkan dan hanya berhenti menonton setelah Anda mendapatkan intinya!
happytime harry
Ini tidak akan berfungsi jika Anda tidak ingin tanda kurung dalam nama folder Anda. Misalnya saya dapat membuat daftar folder: x (0), x (1), x (2), ... x (N). Tetapi saya TIDAK dapat membuat daftar: x0, x1, x2, ... xN
Gil Epshtain
2

Ini tidak akan lebih baik daripada skrip untuk skenario khusus Anda, tetapi senang mengetahui hal ini ketika nama folder Anda tidak terkait: Anda dapat membuat beberapa direktori dari baris perintah dengan memisahkannya dengan spasi:

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
TTT
sumber
3
Anda baik untuk menunjukkan hal ini, tetapi tidak menjawab pertanyaan ...
DavidPostill
1
@ DavidPostill. Saya setuju, itulah sebabnya saya mengatakannya seperti yang saya lakukan. Tapi ini JAUH lebih baik daripada membuat folder 1 dengan 1. Mungkin saya harus menghapus jawabannya dan berkomentar?
TTT
1

Anda mungkin menemukan bahwa jika Anda membuat folder bernomor bernama seperti ini, mereka tidak akan ditampilkan dalam urutan pengurutan yang sesuai (diharapkan):

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
...

Masalahnya adalah, bagian nomor dari nama file adalah lebar variabel, yang mempengaruhi bagaimana folder diurutkan.

Jika penting bagi Anda agar folder diurutkan dengan benar, gunakan file batch di bawah ini untuk membuat folder dengan bagian bernomor dari nama file yang diisi dengan "0" (nol) sehingga semua angka memiliki panjang yang sama, seperti ini:

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
...

Ini adalah file batch:

@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
Kevin Fegan
sumber
1
Bagaimana mereka menyortir itu bergantung pada alat. Explorer (dan sebagian besar pengelola file lainnya) akan mengurutkannya secara intuitif, Lec-10setelahnya Lec-9.
afrazier
Explorer menggunakan sort alami sehingga 2akan diletakkan 10seperti yang diharapkan (jika Anda melihat screenshot OP 9 juga diurutkan sebelum 10). Hanya dirmenderita masalah itu dan perlu 0bantalan, tetapi OP tidak tahu banyak tentang baris perintah jadi saya tidak berpikir itu akan menjadi masalah
phuclv
@ phuclv - Ya, seperti yang Anda katakan, "OP tidak tahu banyak tentang baris perintah ...". Itu sebabnya saya menulis jawaban ini. Memberitahu OP apa yang diharapkan dan memberikan solusi (jawaban). Saya bisa membayangkan OP menggunakan jawaban hebat DavidPostill, lalu menjadi bingung melihat dirdaftar folder rusak. Windows Seperti yang Anda dan lebih afrazier sebutkan, Windows Explorer akan mengurutkan / daftar folder dengan benar, tetapi OP sedang mencari batchsolusi yang berarti mereka akan (kemungkinan besar) bekerja dari Windows command prompt.
Kevin Fegan
0

Anda bisa menjalankan file batch ini di folder yang sama dengan file. Setiap file akan dipindahkan ke folder dengan nama yang sama.

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

Saya menggunakannya dengan peringatan di bawah ini untuk menghindari penggunaan yang tidak disengaja.

@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"
)
)
Terence
sumber
-1

Pertama-tama saya tidak membaca seluruh masalah Anda ... tetapi sejauh yang saya bisa mengetahuinya ... Anda ingin mengganti nama folder berdasarkan daftar ... baik ada dua metode

Metode-1 -Jika Anda tidak memiliki daftar folder ... ada solusinya ... Anda harus pergi ke macOS dengan pohon Folder ini ... dan hanya menyalin seluruh pohon folder ... Apa yang akan dilakukan macOS adalah mereka menyalin konten serta daftar semua folder Anda dalam hal daftar juga ... sekarang tempel di TextEdit atau perangkat lunak apa pun yang mirip dengan Notepad.

-Sekarang Saya berasumsi Anda memiliki daftar folder itu bersama Anda ... Anda hanya perlu satu perangkat lunak pihak ketiga untuk melakukan pekerjaan itu (Sekarang Semua Langkah untuk Windows) https://www.rename-expert.com -Dalam istilah dari menggunakan perangkat lunak ini Anda harus membuat folder baru, folder-2 baru, folder-4 baru sebanyak yang Anda inginkan.

-Sekarang di Ganti Nama Pakar ada Opsi untuk Ganti Nama Folder dari Dasar Daftar.

-Kamu sudah selesai.

Metode-2 -Jika Anda ingin membuat salinan mirror dari seluruh pohon folder Anda tanpa file di dalamnya.

-Beyond Compare adalah perangkat lunak yang Anda butuhkan. https://www.scootersoftware.com/support.php?zz=kb_copyfolderstructure

Utkarsh Patel
sumber
Ini salah mengasumsikan pengguna sudah memiliki pohon folder lengkap. Ada solusi yang lebih baik yang tidak memerlukan perangkat lunak tambahan dan / atau tidak dikenal.
jiggunjer