Wie kann man dieses Skript von einem beliebigen Desktop aus starten?

327
Claudia L.

Dieser Teil scheint der zu ändernde Code zu sein:

Set fol = fso.GetFolder("c:\TEST") 

Wie kann ich das ändern, damit es auf jedem Computer von jedem Ort / Pfad aus funktioniert?

Müsste ich einen zusätzlichen Code integrieren, der die Person erlaubt?

Um ihren Computernamen vorübergehend einzugeben - z. B. JOHN-PC / MARY-PC / PAUL-PC

Muss es einen bestimmten Ort / Pfad angeben oder gibt es eine Möglichkeit, ihn vollständig zu entfernen?


Dim sName Dim fso Dim fol  ' create the filesystem object Set fso = WScript.CreateObject("Scripting.FileSystemObject")  ' get current folder Set fol = fso.GetFolder("c:\TEST")  ' go thru each files in the folder For Each fil In fol.Files ' check if the file name contains underscore If InStr(1, fil.Name, "john") <> 0 Then ' replace underscore with space sName = Replace(fil.Name, "john", "dave") ' rename the file fil.Name = sName End If Next  ' echo the job is completed WScript.Echo "Completed!" 
1
In welchem ​​Ordner soll es laufen? Sie könnten den Ordner als Argument angeben? Oder haben Sie es im aktuellen Ordner ausgeführt, in dem sich das Skript befindet? Jonno vor 8 Jahren 0
Desktop oder Downloads, das Problem scheint zu sein, dass es nicht möglich ist, von Admin zu Admin zu unterscheiden, wenn ich die Datei an einen Freund sende und er sie vom Desktop- oder Download-Ordner ausführen möchte. das letzte nehme ich an. thnx. Claudia L. vor 8 Jahren 0

1 Antwort auf die Frage

1
Jonno

Sie haben verschiedene Möglichkeiten.

  1. Sie können den Dateipfad anhand von %USERPROFILE%- beispielsweise %USERPROFILE%\Downloads\. Dadurch erhalten Sie den Download-Ordner für den aktuell angemeldeten Benutzer.

  2. Man könnte es als eine liefern argument, weitere Informationen zu diesem Thema hier .

Sie würden die Datei dann effektiv mit aufrufen cscript FILE.vbs "C:\Temp\Folder\"und in Ihrem Skript verwenden:

objArgs = WScript.Arguments Set fol = fso.GetFolder(objArgs(0)) 
  1. Das gefundene Beispiel gibt Ihnen den aktuellen Arbeitsordner. Zum Beispiel, wenn Ihre VBS in istC:\Temp\Test\test.vbs

    Set fol = fso.GetFolder(fso.GetAbsolutePathName("."))

Dies macht folden Ordnerinhalt von C:\Temp\Test- Denken Sie daran, dies würde Ihre VBS-Datei einschließen, die Sie ausführen.!

Für 3. müsste ich diese Zeile hinzufügen? Wie würde das Skript danach aussehen? Claudia L. vor 8 Jahren 0
Meine Antwort wurde aktualisiert, tauschen Sie einfach die Zeile aus, wie sie ist. Jonno vor 8 Jahren 0
Sah die letzte Bearbeitung, scheint es zu funktionieren. Danke dir! Claudia L. vor 8 Jahren 0
@ClaudiaL. Kein Problem. Wie gesagt, seien Sie vorsichtig, da dies auch die VBS-Datei erfasst. Wenn Sie die Antwort als akzeptiert markieren können, wenn sie Ihnen geholfen hat (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) Jonno vor 8 Jahren 0