मैं एक स्क्रिप्ट का उपयोग करके एक फ़ाइल को कई गंतव्यों में कॉपी करना चाहता हूं जो एक निर्देशिका के माध्यम से फ़िल्टर करता है और $ File_path में नवीनतम फ़ाइल का चयन करता है, फिर उसका नाम बदलता है और इसे $ गंतव्य पर कॉपी करता है, जिस स्क्रिप्ट का मैं उपयोग कर रहा हूं वह यह है:

 $File_path = "C:\TEMP\export\liste\Text_Utf8\"
 $destination = "C:\TEMP\export\C7E001"
get-childitem -path $File_path -Filter "Ges?*.txt" | 
    where-object { -not $_.PSIsContainer } | 
    sort-object -Property $_.CreationTime | 
    select-object -last 1  | copy-item -Destination (join-path $destination "FRER3000CCFETES01_IN.DEV")

यह केवल इसे एक स्थान पर कॉपी करता है, क्या एक ही फाइल को कई स्थानों पर कॉपी करने के लिए इसे बेहतर बनाने का कोई तरीका है? मैंने यह thread देखा है लेकिन ऐसा लगता है विभिन्न।

अन्य स्थान इस प्रकार हैं:

सी: \ TEMP \ निर्यात \ C7P001 C: \ TEMP \ निर्यात \ C7F001 C: \ TEMP \ निर्यात \ C7S001 और इसी तरह।

शुक्रिया।

0
RJ96 28 सितंबर 2020, 11:02

2 जवाब

सबसे बढ़िया उत्तर

हालांकि मेरा उत्तर पीटर के उत्तर से बहुत अलग नहीं है, यह नवीनतम फ़ाइल प्राप्त करने के लिए LastWriteTime गुण का उपयोग करता है और Copy-Item cmdlet में कॉपी करने के लिए फ़ाइल की FullName प्रॉपर्टी का उपयोग करता है।

$File_path    = "C:\TEMP\export\liste\Text_Utf8"
$destinations = "C:\TEMP\export\C7E001", "C:\TEMP\export\C7F001", "C:\TEMP\export\C7S001"
$fileToCopy   = Get-ChildItem -Path $File_path -Filter "Ges*.txt" -File | 
                Sort-Object -Property $_.LastWriteTime | 
                Select-Object -Last 1

foreach ($dest in $destinations) {
    Copy-Item -Path $fileToCopy.FullName -Destination (Join-Path -Path $dest -ChildPath "FRER3000CCFETES01_IN.DEV")
}
1
Theo 28 सितंबर 2020, 11:51

आप फ़ोरैच ऑब्जेक्ट लूप का उपयोग कर सकते हैं

$File_path = "C:\TEMP\export\liste\Text_Utf8\"
$destination = "C:\TEMP\export\C7E001", "C:\TEMP\export\C7P001", "C:\TEMP\export\C7F001", "C:\TEMP\export\C7S001"
$Files = get-childitem -path $File_path -Filter "Ges?*.txt" | 
    where-object { -not $_.PSIsContainer } | 
    sort-object -Property $_.CreationTime | 
    select-object -last 1 
$Destination | Foreach-Object {copy-item $Files -Destination (join-path $_ "FRER3000CCFETES01_IN.DEV")}
1
Peter the Automator 28 सितंबर 2020, 11:22