Что нового

Как в командную строку передать команду с макросом и с одной переменной

alex2887

Новичок
Сообщения
57
Репутация
0
Всем привет, помогите пожалуйста с решением проблемы: Я написал скрипт, который ищет диск с файловой системой "exFAT" и если находит, то начинает копировать папку Google на этот диск, после чего он переименовывает папку, которая осталась по адресу: @LocalAppDataDir&'\Google (я ее специально не удаляю, на всякий случай, вдруг понадобится). Все это отрабатывается как задумано, но у меня возникла проблема, как с помощью командной строки создать символьную ссылку, на папку "Google". У меня в пути указаны макросы и буква диска может меняться на любую другую. Как мне записать команду, чтобы и макросы остались и буква диска менялась.
Прошу не обращать внимание на множество всплывающих окон, мне пока что так проще ориентироваться в скрипте, но если все получится, то я уберу все лишнее. У меня загвоздка возникла на последней строчке, пробовал уже по-разному, но не отрабатывает. Может быть нельзя записывать макросы и переменные в команду? Или нужно это делать как-то по-другому? Заранее спасибо.
Вот сам скрипт:
Код:
#include <Array.au3>
 $filesys = ':exFAT'
$drive= DriveGetDrive ( "FIXED" )
MsgBox(64, 'Внимание!', 'Перед применением данного скрипта закрыть браузер!')
_ArrayDelete($drive, 0)
_ArrayDisplay($drive)
$max= _ArrayMaxIndex($drive, '', 0)
MsgBox(64, '', $max)

For $i=$max To $drive[1] Step -1
   $driveget= DriveGetFileSystem($drive[$i])
   $msgBox= MsgBox(64, 'Диск:\файловая система', $drive[$i]&'\' & $driveget)
   $string=StringRegExp($drive[$i] & $driveget, $filesys)
   MsgBox(64, '', $string)
   If $string=1 Then
	  DirCopy(@LocalAppDataDir&'\Google', $drive[$i]&'\Google', 1)
      Sleep(100)
	  DirMove(@LocalAppDataDir&'\Google', @LocalAppDataDir&'\Google+', 0)
	  Sleep(100)
      Run(@ComSpec & " /c " & 'mklink /D @LocalAppDataDir&'\Google' $drive[$i]&'\Google', "", @SW_HIDE)
   EndIf
Next
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
MsgBox(0, "Проверка", @ComSpec & " /c mklink /D " & @LocalAppDataDir & "\Google " & $drive[$i] & "\Google")
 
Автор
A

alex2887

Новичок
Сообщения
57
Репутация
0
Благодарю за помощь, а вы можете объяснить, почему через командную строку не получалось так сделать? И как вы так сделали через MsgBox? :scratch:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
alex2887 [?]
как вы так сделали через MsgBox?
Что сделал? Расставил кавычки?
Я просто показал вам, как проверить строку прежде, чем передавать её на запуск: сначала проверяете её в MsgBox или ConsoleWrite, убеждаетесь в правильности, и затем копируете в Run
Код:
Run(@ComSpec & " /c mklink /D " & @LocalAppDataDir & "\Google " & $drive[$i] & "\Google")
 
Автор
A

alex2887

Новичок
Сообщения
57
Репутация
0
Благодарю за ответ, теперь разобрался :laugh:
 
Верх