PDA

View Full Version : Rename With CMD



پرستو پارسایی
یک شنبه 21 دی 1399, 13:45 عصر
با سلام من میخوام یک فولدر رو Rename کنم تو شاخه ویندوز ، و از این کد استفاده کردم ولی جواب نگرفتم ممنون مبشم اساتید در صورت اطلاع پاسخ دهید سپاسگزارم

Dim process As New Process()
Dim startInfo As New ProcessStartInfo()
startInfo.FileName = "cmd.exe"
startInfo.Arguments = "run as administrator"
startInfo.Arguments = "net stop wuauserv"
startInfo.Arguments = "net stop bits"
startInfo.Arguments = "rename c:\windows\SoftwareDistribution SoftwareDistribution.bak"
startInfo.Arguments = "net start wuauserv"
startInfo.Arguments = "net start bits"
MsgBox("Ok")

hamidrezax1
یک شنبه 21 دی 1399, 14:39 عصر
سلام دوست عزیز



My.Computer.FileSystem.RenameDirectory("نام جدید", "مسیر فایل")
My.Computer.FileSystem.RenameDirectory("c:\windows\SoftwareDistribution", "SoftwareDistribution2")

پرستو پارسایی
یک شنبه 21 دی 1399, 15:15 عصر
ممنونم از پاسخ شما ولی من میخواهم با cmd اینکار رو بکنم این فولدر در جاهای محتلفی از سیستم باز هست و با کد پیشنهادی شما کار نخواهد کرد

mazoolagh
یک شنبه 21 دی 1399, 18:56 عصر
میتونین کل دستورها رو در یک بچ فایل بریزین و اون رو اجرا کنین.

hamidrezax1
یک شنبه 21 دی 1399, 19:36 عصر
سلام مجدد

دستوری که باید اجرا بشه بایستی به این صورت باشه






rename "c:\windows\SoftwareDistribution" "SoftwareDistribution.bak"

پرستو پارسایی
یک شنبه 21 دی 1399, 20:12 عصر
سلام مجدد

دستوری که باید اجرا بشه بایستی به این صورت باشه






rename "c:\windows\SoftwareDistribution" "SoftwareDistribution.bak"




ممنونم از پاسخ شما با Batch file هم اینکار عملی نشد متاسفانه

the king
دوشنبه 22 دی 1399, 03:06 صبح
با سلام من میخوام یک فولدر رو Rename کنم تو شاخه ویندوز ، و از این کد استفاده کردم ولی جواب نگرفتم ممنون مبشم اساتید در صورت اطلاع پاسخ دهید سپاسگزارم

Dim process As New Process()
Dim startInfo As New ProcessStartInfo()
startInfo.FileName = "cmd.exe"
startInfo.Arguments = "run as administrator"
startInfo.Arguments = "net stop wuauserv"
startInfo.Arguments = "net stop bits"
startInfo.Arguments = "rename c:\windows\SoftwareDistribution SoftwareDistribution.bak"
startInfo.Arguments = "net start wuauserv"
startInfo.Arguments = "net start bits"
MsgBox("Ok")
کاری نمی کنه، صرفا ProcessStartInfo میسازه و سر مقدار Arguments اش هم بلاتکلیف ئه و مدام مقدار عوض می کنه، یک Process هم ایجاد نمیشه چه برسه به اجرای چندین فرمان.

ابتدا دسترسی لازم رو برای برنامه مشخص کنید، منوی Project گزینه ...ProjectName Properties زبانه Application دکمه View Windows Settings
چند سطر requestedExecutionLevel پشت سر هم به عنوان مثال نوشته شده که ازشون عبور کنید.
پایینتر یک سطر "requestedExecutionLevel level="asInvoker هست که سطر بالا و پایین اش هیچ requestedExecutionLevel دیگری نیست و تک و تنها است.
مقدار asInvoker اش رو به requireAdministrator تغییر بدهید که مثالش در سطر های بالاتر همون متن هست.

سپس در پروژه به System.ServiceProcess رفرنس بدهید، منوی Project گزینه ...Add Reference زبانه Assemblies بین موارد لیست شده System.ServiceProcess رو پیدا کنید و رویش کلیک کنید و تیک بزنید و با دکمه OK تایید کنید.

Dim wuauserv As New ServiceProcess.ServiceController("wuauserv")
If (wuauserv.Status = ServiceProcess. ServiceControllerStatus.Running) Then
wuauserv.Stop()
wuauserv.WaitForStatus( ServiceProcess. ServiceControllerStatus.Stopped)
End If
Dim bits As New ServiceProcess.ServiceController ("bits")
If (bits.Status = ServiceProcess. ServiceControllerStatus.Running) Then
bits.Stop()
bits.WaitForStatus( ServiceProcess. ServiceControllerStatus.Stopped)
End If
Dim sourceFolder = "C:\Windows\SoftwareDistribution"
If IO.Directory.Exists(sourceFolder) Then
Dim destFolder = "C:\Windows\SoftwareDistribution.bak"
For n = 2 To Integer.MaxValue
If IO.Directory.Exists(destFolder) = False Then Exit For
destFolder = "C:\Windows\SoftwareDistribution" & n & ".bak"
Next
IO.Directory.Move(sourceFolder, destFolder)
End If
wuauserv.Start()
bits.Start()

پرستو پارسایی
دوشنبه 22 دی 1399, 13:26 عصر
کاری نمی کنه، صرفا ProcessStartInfo میسازه و سر مقدار Arguments اش هم بلاتکلیف ئه و مدام مقدار عوض می کنه، یک Process هم ایجاد نمیشه چه برسه به اجرای چندین فرمان.

ابتدا دسترسی لازم رو برای برنامه مشخص کنید، منوی Project گزینه ...ProjectName Properties زبانه Application دکمه View Windows Settings
چند سطر requestedExecutionLevel پشت سر هم به عنوان مثال نوشته شده که ازشون عبور کنید.
پایینتر یک سطر "requestedExecutionLevel level="asInvoker هست که سطر بالا و پایین اش هیچ requestedExecutionLevel دیگری نیست و تک و تنها است.
مقدار asInvoker اش رو به requireAdministrator تغییر بدهید که مثالش در سطر های بالاتر همون متن هست.

سپس در پروژه به System.ServiceProcess رفرنس بدهید، منوی Project گزینه ...Add Reference زبانه Assemblies بین موارد لیست شده System.ServiceProcess رو پیدا کنید و رویش کلیک کنید و تیک بزنید و با دکمه OK تایید کنید.

Dim wuauserv As New ServiceProcess.ServiceController("wuauserv")
If (wuauserv.Status = ServiceProcess. ServiceControllerStatus.Running) Then
wuauserv.Stop()
wuauserv.WaitForStatus( ServiceProcess. ServiceControllerStatus.Stopped)
End If
Dim bits As New ServiceProcess.ServiceController ("bits")
If (bits.Status = ServiceProcess. ServiceControllerStatus.Running) Then
bits.Stop()
bits.WaitForStatus( ServiceProcess. ServiceControllerStatus.Stopped)
End If
Dim sourceFolder = "C:\Windows\SoftwareDistribution"
If IO.Directory.Exists(sourceFolder) Then
Dim destFolder = "C:\Windows\SoftwareDistribution.bak"
For n = 2 To Integer.MaxValue
If IO.Directory.Exists(destFolder) = False Then Exit For
destFolder = "C:\Windows\SoftwareDistribution" & n & ".bak"
Next
IO.Directory.Move(sourceFolder, destFolder)
End If
wuauserv.Start()
bits.Start()


ممنونم از پاسخ شما بسار عالی و آموزنده . فقط من در ابتدا عرض کرده بودم میخواهم فولدر مورد نظر Rename بشه ولی الان با این کدی که شما لطف فرمودید یک فولدر اضافه شد با همون نام و با یک پسوند دیگر و فولدر مورد نظرم هنوز با همان نام موجوده.
علت اینکه من میخواهم نام این فولدر را تغییر بدهم نصب ناموفق فریمورک 4 بر روی ویندوز 7 و 8 و 10 هست که در حال حاضر در مورد اجرای این کد در ویندوز 7 این اجرا رو دارم. با rename کردن فولدر مذکور فریم ورک 4 براحتی نصب میشه ولی اگر rename نکنم نصب نمیشه . روی ویندوز 7 بدون آپدیت اجرا کردم نشد روی ویندوز 7 بعد از آپدیت هم نصب نشد ولی با تغییر نام فولدر مذکور در هر دو حالت نصب میشه. ممنون میشم راهنمایی بفرمایید سپاسگزارم

the king
دوشنبه 22 دی 1399, 13:47 عصر
ممنونم از پاسخ شما بسار عالی و آموزنده . فقط من در ابتدا عرض کرده بودم میخواهم فولدر مورد نظر Rename بشه ولی الان با این کدی که شما لطف فرمودید یک فولدر اضافه شد با همون نام و با یک پسوند دیگر و فولدر مورد نظرم هنوز با همان نام موجوده.

نه، ساختن اون فولدر مربوط به کارکرد سرویس ها است، نه درست عمل نکردن IO.Directory.Move.
اگر فولدر به درستی و کامل به نام جدید bak جابجا نمیشد پیام خطا دریافت می کردید.
وقتی اون سرویس ها مجددا اجرا میشن اون فولدر سیستمی بصورت خودکار ایجاد میشه. ایجاد مجدد اون فولدر یک روال عادیه و باید اینطوری باشه.

پرستو پارسایی
دوشنبه 22 دی 1399, 14:16 عصر
ممنونم از پاسخ شما و اینکه وقت گذاشتید . فقط سوالی که برام حل نشد اینکه چرا وقتی بصورنت دستی Rename میکنم مشکل حل مبشه و فولدر جدیدی هم ساخته نمیشه و دات نت فریم ورک هم نصب میشه ولی در این حالت که شما لطف فرمودید دات نت 4 نصب نمیشه . آیا راه دیگری برای نصب دات نت 4 بر روی ویندوز 7 هم هست . با اینکه خیلی وقت گذاشتم و جستجو کردم نتیجه مطلوبی نگرفتم از راهنمایی شما سپاسگزارم

the king
دوشنبه 22 دی 1399, 14:53 عصر
ممنونم از پاسخ شما و اینکه وقت گذاشتید . فقط سوالی که برام حل نشد اینکه چرا وقتی بصورنت دستی Rename میکنم مشکل حل مبشه و فولدر جدیدی هم ساخته نمیشه و دات نت فریم ورک هم نصب میشه ولی در این حالت که شما لطف فرمودید دات نت 4 نصب نمیشه . آیا راه دیگری برای نصب دات نت 4 بر روی ویندوز 7 هم هست . با اینکه خیلی وقت گذاشتم و جستجو کردم نتیجه مطلوبی نگرفتم از راهنمایی شما سپاسگزارم
عرض کردم، نتیجه اجرای سرویس ها است.
اون دو تا سطر انتهایی مربوط به اجرای سرویس ()wuauserv.Start و ()bits.Start رو که حذف کنید و سرویس ها اجرا نشن دیگه فولدر SoftwareDistribution ایجاد نمیشه.
مشکلات نصب برنامه ها رو باید از طریق پیام خطا و log ئه Setup شون پیگیری کنید.

ابزار رفع مشکلات عمومی در نصب NET Framework. ها که اینه :
https://www.microsoft.com/en-us/download/details.aspx?id=30135

اما بجز این ابزار جانبی NET Framework Setup Cleanup Utility. هم هست که برای پاک کردن نصب های مشکل دار ئه و فقط برای کسی مناسبه که با روال نصب Framework های پیشفرض ویندوز آشنا است، اگر تخصصش رو نداشته باشید بهتره سراغش نرید.