Как запустить этот конкретный скрипт с любого рабочего стола в любом месте?

319
Claudia L.

Эта часть, кажется, код для изменения:

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

Как я могу изменить это так, чтобы он работал на любом компьютере из любого места / пути?

Нужно ли мне интегрировать дополнительный код, который позволяет человеку

временно ввести имя своего компьютера - например, JOHN-PC / MARY-PC / PAUL-PC

Нужно ли указывать конкретное местоположение / путь или есть способ удалить его вообще?


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
В какой папке вы хотите запустить? Вы могли бы предоставить папку в качестве аргумента? Или он запускается в текущей папке, в которой находится скрипт? Jonno 8 лет назад 0
Похоже, проблема заключается в том, что он не сможет отличить администратора от администратора, если я отправлю файл другу, и он захочет выполнить его из папки рабочего стола или папки загрузок. последний, я полагаю. Thnx. Claudia L. 8 лет назад 0

1 ответ на вопрос

1
Jonno

У вас есть несколько вариантов.

  1. Вы можете указать путь к файлу, %USERPROFILE%например, из %USERPROFILE%\Downloads\. Это даст вам папку Download для текущего вошедшего в систему пользователя.

  2. Вы можете предоставить это как argument, больше информации об этом здесь .

По сути, вы бы тогда вызвали файл с помощью cscript FILE.vbs "C:\Temp\Folder\"и в вашем скрипте использовали:

objArgs = WScript.Arguments Set fol = fso.GetFolder(objArgs(0)) 
  1. Пример, который вы нашли, даст вам текущую рабочую папку. Например, если ваш VBS находится вC:\Temp\Test\test.vbs

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

Это сделало бы folсодержимое папки C:\Temp\Test- Имейте в виду, это будет включать ваш файл VBS, который вы используете ..!

Для 3. где бы мне нужно было добавить эту строку? Как сценарий будет выглядеть после факта? Claudia L. 8 лет назад 0
Обновил мой ответ, просто поменяйте строку как есть. Jonno 8 лет назад 0
Видел, что последнее редактирование, похоже, работает. Благодарю вас! Claudia L. 8 лет назад 0
@ClaudiaL. Нет проблем. Как уже было сказано, будьте осторожны, так как это будет ловить файл VBS также. Если вы можете пометить ответ как принятый, если он вам помог (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) Jonno 8 лет назад 0