עזרה בסקריפט

happyalmost

New member
עזרה בסקריפט

אני מחפש לכתוב סקריפט ב pwershell או VBS או מה שתרצו שיעבוד על WINDOWS .
המטרה היא להעתיק קובץ מסויים כך שיהיה עותק שלו בכל תיקייה בהיררכיית תיקיות מסויימת (נגיד תחת c:\folder ) כך שבכל תת תיקייה יהיה עותק, אם כבר קיים עותק לא משנה לי שידרוס אותו או שידלג
משום מה אני מסתבך עם POWERSHELL בניסיון
אשמח לכל סיוע בנושא
תודה
 

F00D Is G00D

New member
בבקשה

foreach($_ in (Get-ChildItem C:\PSScripts\TapuzDec\FolderStracture)){
Copy-Item -Path C:\PSScripts\TapuzDec\File_to_copy.txt -Destination C:\PSScripts\TapuzDec\FolderStracture\$($_.name)}​
 

happyalmost

New member
כמעט

זה עובד אבל רק לרמה אחת של תתי תיקיות. יש אפשרות שזה יעבוד לעל ההיררכיה מטה ? כלומר לכל תיקייה ייכנס לתתי התיקיות שלה וכן הלאה לכל ההיררכיה
 
פתרון ברקורסיה

שם הקובץ test.ps1 בכונן d
קריאה לסקריפט
d:\test.ps1 MyDirecoryToCopy


$d = Get-ChildItem -Directory $args[0]
Foreach ($i in $d)
{
$f = $i.FullName
echo $f
Copy-Item d:\myfile.txt $f
Invoke-Expression "d:\test.ps1 $f"
}
 

happyalmost

New member
כמעט

הי , תודה על העזרה.
חשבתי בהתחלה שזה לא עובד אבל זה עובד כמעט..
הבעיה היחידה היא בתיקיות שבהם השם מורכב ביותר ממילה אחת ואז זה נופל על הרווח שבין המילים כי הוא עוצר ומחפש נתיב רק לפי המילה הראשונה ונכשל..
יש דרך לתקן את זה ?
&nbsp
 

happyalmost

New member
נמצא פתרון

השינוי של השורה לא עבד לי משום מה אבל נמצא פתרון אחר
למי שמעניין אותו
Set fso = CreateObject("Scripting.FileSystemObject")
set root=fso.getFolder("d:\test")
fname="d:\test\test.txt"
call folderlist(root)
sub folderlist(grp)
target=grp.path & "\"
fso.copyFile fname,target,true
for each fldr in grp.subFolders
set nf=fso.GetFolder(fldr.path)
call folderlist(nf)
set nf=nothing
next
end sub
&nbsp
 
למעלה