Saya mencoba belajar sedikit tentang skrip PowerShell dan telah mencoba untuk secara logis memecah skrip yang menyertakan potongan ini.
$destFolders | Foreach-Object { Copy-Item -Path $Source -dest (Join-Path $_ $destFileName) }
Jika saya menulis ini dari awal saya pikir saya akan menulisnya sebagai berikut - mengapa saya salah?
$destFolders | Foreach-Object { Copy-Item -Path $Source -dest ($_) }
Skrip Lengkap: - harap dicatat $ destfilename tidak didefinisikan, mungkin karena kesalahan (?)
$path = "C:\a\"
$filename = (get-date).AddDays(-4).ToString('afileMMdd.txt')
$fileexisting = "$path\$filename"
$destfolders = "C:\b\", "C:\c\"
while(!(Test-Path $fileexisting)) {Start-Sleep 5}
$destfolders |
ForEach-Object {Copy-Item -Path $path\$filename -dest (Join-Path $_ $destfilename)}
powershell
Monyet laba-laba
sumber
sumber
Jawaban:
Baris ini berisi elemen, seperti
$destFolders
,$Source
dan$destFileName
, yang tampaknya merupakan bagian dari skrip lengkap. Tanpa mengetahui mereka dan tujuan mereka, jawaban saya bisa salah.Namun, perintah Salin-Item memiliki kemampuan untuk menyalin item dan menamainya juga. Sepertinya inilah yang dilakukan oleh baris pertama skrip. Baris Anda hanya menyalin item.
sumber
Secara singkat :
Join-Path
memungkinkan Anda untuk mempertahankan struktur folder yang$destFileName
berisi informasi direktori dan file. (Yaitu terlihat seperti"somedirectory\myfile.txt"
, tidakmyfile.txt
)Jadi skripnya menyalin file dari
C:\
drive keE:\
danD:\
.Bayangkan
C:\myfile.txt
ada file :Bayangkan Anda memiliki file
C:\somedirectory\myfile.txt
sumber
Anda dapat melihat backslash berlipat ganda dalam
C:\a\\a6ile0309.PxP
(kesalahan kecil) dan karakter yang seharusnya tidak diinginkan dalam output asli (kesalahan parah):Yang terakhir ini disebabkan oleh penspesifikasi format yang disalahgunakan
f
dant
Baca Memformat Tanggal dan Waktu serta Memformat Angka dan Tanggal Menggunakan Objek CultureInfo :
f
Tanggal dan waktu penuh (tanggal panjang dan waktu singkat)t
,%t
Karakter pertama dalam penunjuk AM / PM yang ditentukan dalam AMDesignator atau PMDesignator, jika ada. Tentukan "% t" jika pola format tidak digabungkan dengan pola format lainnya.Bahkan,
f
dalamafile
hasil untuk bertahan milidetik (?) Atau centang (?), Lihat catatan terakhir di bawah ini. Jujur, saya tidak tahu apakah itu bisa lolos jadi coba cuplikan kode berikut:Keluaran :
Harap perhatikan itu
dapat ditulis sebagai
dan saya tidak tahu notasi mana yang lebih baik atau lebih benar ( PowerShellish ).
Perhatikan juga perbedaannya:
sumber