Saya memiliki file csv yang berisi satu kolom sel (kolom A), setiap baris/sel berisi satu nama file. File csv tidak memiliki header.

Sesuatu seperti ini -

6_2021-05-10_02-00-36.mp4    
6_2021-05-10_05-04-01.mp4     
6_2021-05-10_05-28-59.mp4       
6_2021-05-10_05-35-05.mp4      
6_2021-05-10_05-35-34.mp4      
6_2021-05-10_05-39-36.mp4  
6_2021-05-10_05-39-41.mp4   
6_2021-05-10_05-39-52.mp4

Jumlah baris dalam file csv ini bervariasi.

Saya perlu menambahkan URL ke awal teks di setiap sel, sehingga, URL yang valid dibuat - dan konten csv yang dihasilkan terlihat persis seperti ini:

https:\\www.url.com\6_2021-05-10_02-00-36.mp4    
https:\\www.url.com\6_2021-05-10_05-04-01.mp4
https:\\www.url.com\6_2021-05-10_05-28-59.mp4
https:\\www.url.com\6_2021-05-10_05-35-05.mp4
https:\\www.url.com\6_2021-05-10_05-35-34.mp4
https:\\www.url.com\6_2021-05-10_05-39-36.mp4
https:\\www.url.com\6_2021-05-10_05-39-41.mp4
https:\\www.url.com\6_2021-05-10_05-39-52.mp4

Jadi, ini yang saya buat, tetapi tidak berhasil .....

Param($File)  
$csvObjects = C:\_TEMP\file_list_names.csv $file 
$NewCSVObject = "https:\\www.url.com\"  
foreach ($item in $csvObjects)  
{  
    $item = ($NewCSVObject += $item)   
}  
$csvObjects | export-csv "C:\_TEMP\file_list_names_output.csv" -noType 

Tapi itu tidak berhasil, dan keterampilan PowerShell saya tidak begitu tajam. Saya akan sangat berterima kasih atas bantuan dalam hal ini.

Terima kasih sebelumnya- Gregg Sierra Vista, AZ

1
Gregg Powell 12 Mei 2021, 21:30

3 jawaban

Jawaban Terbaik

Hanya concat dengan apa yang Anda inginkan:

$file2 ="C:\fic2.csv"
$x = Get-Content $file2

for($i=0; $i -lt $x.Count; $i++){

    $x[$i] = "https:\\www.url.com\" + $x[$i] 
}
$x
0
Frenchy 12 Mei 2021, 18:53

Dengan bantuan Frenchy.... jawaban lengkapnya adalah.... (URL diubah untuk alasan keamanan jelas)

#opens list of file names
$file2 ="C:\_TEMP\file_list_names.csv"
$x = Get-Content $file2
#appends URl to beginning of file name list
for($i=0; $i -lt $x.Count; $i++){

    $x[$i] = "https://bizops-my.sharepoint.com/:f:/g/personal/gpowell_bizops_onmicrosoft_com/Ei4lFpZHTe=Jkq1fZ\" + $x[$i] 
}
$x

#remove all files in target directory prior to saving new list
get-childitem -path C:\_TEMP\file_list_names_url.csv | remove-item

Add-Content -Path C:\_TEMP\file_list_names_url.csv -Value $x
0
Gregg Powell 12 Mei 2021, 23:56

Secara teknis file input Anda dapat berfungsi sebagai csv, tetapi karena hanya berisi satu kolom data dan tidak memiliki header, Anda dapat memperlakukannya paling baik dengan Get-Content daripada menggunakan Import-Csv
Berikut dua alternatif untuk Anda coba.

$result = foreach ($fileName in (Get-Content -Path 'C:\_TEMP\file_list_names.csv')) {
    'https:\\www.url.com\{0}' -f $fileName
}
# next save the file
$result | Set-Content -Path 'C:\_TEMP\file_urls.csv'

ATAU sesuatu seperti:

Get-Content -Path 'C:\_TEMP\file_list_names.csv' | ForEach-Object {
    "https:\\www.url.com\$_"
} | Set-Content -Path 'C:\_TEMP\file_urls.csv'

Url biasanya menggunakan garis miring ke depan / bukan garis miring terbalik \.. Saya meninggalkan ini, jadi Anda dapat menggantinya sendiri jika diperlukan

0
Theo 12 Mei 2021, 19:22