Bagaimana Cara Menggunakan Batch File For Loop untuk Mengakses Informasi File dan Folder?
Selain memproses file dan folder dengan batch file for loop, Anda juga dapat mengakses informasi tentang file dan folder tersebut, seperti nama, ekstensi, ukuran, tanggal modifikasi, atribut, dan jalur.
Untuk melakukan hal ini, Anda dapat menggunakan modifikasi jalur (path modifier) pada variabel loop. Modifikasi jalur adalah karakter khusus yang dapat ditambahkan setelah tanda persen (%) pada variabel loop untuk mengubah nilai variabel tersebut.
Berikut adalah beberapa modifikasi jalur yang umum digunakan:
- %~fparameter untuk menampilkan jalur lengkap dari file atau folder.
- %~nparameter` untuk menampilkan nama file atau folder tanpa ekstensi.
- %~xparameter untuk menampilkan ekstensi file atau folder.
- %~sparameter untuk menampilkan jalur pendek (short path) dari file atau folder, yang berguna jika jalur tersebut mengandung spasi.
- %~zparameter untuk menampilkan ukuran file atau folder dalam byte.
- %~tparameter untuk menampilkan tanggal dan waktu modifikasi file atau folder.
- %~aparameter untuk menampilkan atribut file atau folder, seperti R (read-only), H (hidden), S (system), dll.
Contoh:
FOR %%F IN (*.txt) DO ECHO %%F %%~nF %%~xF %%~sF %%~zF %%~tF %%~aF
Perintah di atas akan menampilkan informasi tentang semua file teks di direktori saat ini, seperti nama, ekstensi, jalur pendek, ukuran, tanggal modifikasi, dan atribut.
Bagaimana Cara Menggunakan Batch File For Loop untuk Membuat Jalur Relatif?
Salah satu tantangan yang mungkin Anda hadapi saat menggunakan batch file for loop adalah bagaimana cara membuat jalur relatif dari file atau folder yang diproses oleh loop. Jalur relatif adalah jalur yang tidak mengandung nama drive atau direktori awal, tetapi hanya bagian dari jalur yang berbeda dari direktori saat ini.
Misalnya, jika direktori saat ini adalah C:\Users\Alice\Documents, maka jalur relatif dari file C:\Users\Alice\Pictures\image.jpg adalah …\Pictures\image.jpg.
Membuat jalur relatif dapat berguna jika Anda ingin memindahkan, menyalin, atau mengubah nama file atau folder ke lokasi yang berbeda, tetapi tetap mempertahankan struktur direktori aslinya. Misalnya, Anda mungkin ingin memindahkan semua file teks dari direktori C:\Users\Alice\Documents dan subdirektorinya ke direktori D:\Backup, tetapi tetap mempertahankan subdirektorinya.
Untuk membuat jalur relatif dengan batch file for loop, Anda dapat menggunakan beberapa teknik berikut:
- Menggunakan variabel lingkungan CD untuk mendapatkan direktori saat ini, dan menghapusnya dari jalur lengkap file atau folder dengan menggunakan perintah SET.
- Menggunakan opsi /V:ON untuk mengaktifkan ekspansi variabel tertunda (delayed variable expansion), dan menggunakan tanda seru (!) sebagai pembatas variabel alih-alih tanda persen (%). Ini berguna jika Anda ingin mengubah nilai variabel dalam loop.
- Menggunakan perintah PUSHD dan POPD untuk mengubah direktori saat ini sementara dalam loop, dan menggunakan tanda titik (.) untuk merujuk ke direktori saat ini.
Contoh:
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR /R C:\Users\Alice\Documents %%G IN (*.txt) DO ( SET "source=%%G" SET "destination=!source:%CD%=!" ECHO !destination! ) ENDLOCAL
Perintah di atas akan mencari semua file teks di direktori C:\Users\Alice\Documents dan subdirektorinya, dan menampilkan jalur relatifnya dari direktori saat ini. Misalnya, jika direktori saat ini adalah C:\Users\Alice\Documents, maka jalur relatif dari file C:\Users\Alice\Documents\Folder1\File1.txt adalah Folder1\File1.txt.
@ECHO OFF FOR /R C:\Users\Alice\Documents %%H IN (*.txt) DO ( PUSHD "%%~dpH" SET "source=%%H" SET "destination=%CD%\%%~nxH" ECHO %destination% POPD )
Perintah di atas akan mencari semua file teks di direktori C:\Users\Alice\Documents dan subdirektorinya, dan menampilkan jalur lengkapnya dengan menggunakan direktori saat ini sebagai awalannya. Misalnya, jika direktori saat ini adalah D:\Backup, maka jalur lengkap dari file C:\Users\Alice\Documents\Folder1\File1.txt adalah D:\Backup\Folder1\File1.txt.