Saya menulis skrip PowerShell untuk membuat beberapa direktori jika tidak ada.
Sistem file terlihat mirip dengan ini
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
- Setiap folder proyek memiliki beberapa revisi.
- Setiap folder revisi memerlukan folder Laporan.
- Beberapa folder "revisi" sudah berisi folder Laporan; Namun, sebagian besar tidak.
Saya perlu menulis skrip yang berjalan setiap hari untuk membuat folder ini untuk setiap direktori.
Saya dapat menulis skrip untuk membuat folder, tetapi membuat beberapa folder bermasalah.
Jawaban:
Coba
-Force
parameternya:Anda dapat menggunakannya
Test-Path -PathType Container
untuk memeriksa terlebih dahulu.Lihat artikel bantuan MSDN Item Baru untuk detail lebih lanjut.
sumber
Test-Path
memeriksa untuk melihat apakah jalur itu ada. Ketika tidak, itu akan membuat direktori baru.sumber
test-path
).Cuplikan kode berikut membantu Anda membuat jalur lengkap.
Fungsi di atas memecah jalur yang Anda lewati ke fungsi dan akan memeriksa setiap folder apakah ada atau tidak. Jika tidak ada itu akan membuat folder masing-masing sampai folder target / final dibuat.
Untuk memanggil fungsi, gunakan pernyataan di bawah ini:
sumber
Saya memiliki masalah yang sama persis. Anda dapat menggunakan sesuatu seperti ini:
sumber
Ketika Anda menentukan
-Force
benderanya, PowerShell tidak akan mengeluh jika folder tersebut sudah ada.Satu-liner:
BTW, untuk menjadwalkan tugas, periksa tautan ini: Menjadwalkan Pekerjaan Latar Belakang .
sumber
Menggunakan:
Baris pertama membuat variabel bernama
$path
dan memberinya nilai string "C: \ temp \"Baris kedua adalah
If
pernyataan yang bergantung pada Test-jalan cmdlet untuk memeriksa apakah variabel$path
tidak tidak ada. Tidak ada memenuhi syarat menggunakan!
simbol.Baris ketiga: Jika jalur yang disimpan dalam string di atas tidak ditemukan, kode antara kurung keriting akan dijalankan.
md
adalah versi singkat pengetikan:New-Item -ItemType Directory -Path $path
Catatan: Saya belum diuji menggunakan
-Force
parameter dengan di bawah ini untuk melihat apakah ada perilaku yang tidak diinginkan jika jalur sudah ada.sumber
md "C:\first\second\third
semuanya.Ada tiga cara yang saya tahu untuk membuat direktori menggunakan PowerShell:
sumber
Dari situasi Anda, sepertinya Anda perlu membuat folder "Revisi #" sekali sehari dengan folder "Laporan" di sana. Jika itu masalahnya, Anda hanya perlu tahu apa nomor revisi berikutnya. Tulis fungsi yang mendapatkan nomor revisi berikutnya, Dapatkan-NextRevisionNumber. Atau Anda dapat melakukan sesuatu seperti ini:
Instalasi PowerShell 3.0 .
sumber
Saya ingin dapat dengan mudah membiarkan pengguna membuat profil default untuk PowerShell untuk mengesampingkan beberapa pengaturan, dan berakhir dengan satu-liner berikut (beberapa pernyataan ya, tetapi dapat disisipkan ke dalam PowerShell dan dieksekusi sekaligus, yang merupakan tujuan utama ):
Untuk keterbacaan, inilah cara saya melakukannya dalam file .ps1 sebagai gantinya:
sumber
Inilah yang sederhana yang bekerja untuk saya. Ia memeriksa apakah path ada, dan jika tidak, itu akan membuat tidak hanya path root, tetapi semua sub-direktori juga:
sumber