2016-03-11 2 views
1

Я пытаюсь вызвать сценарий PowerShell из ярлыка и передать текущее местоположение в качестве аргумента. Я пытался использовать% кд% для текущего местоположения и сделал следующую цель ярлыка:Запустить сценарий PowerShell из ярлыка с% cd%

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -command "& 'C:\temp\CurrentLocation.ps1'" -location %cd% 

Сценарий PowerShell выглядит следующим образом:

param(
    $location 
) 
Write-Host $location 

Но выхода является всегда:

%cd% 

Может ли кто-нибудь сказать мне, что мне нужно настроить для вызова сценария PowerShell с текущим местоположением?

Благодаря

Edit: с помощью ярлыка команды целевой в нормальной командной строке дает мне именно то, что мне нужно. В чем разница?

+0

'% кд%' обрабатываются специальным образом с помощью CMD, он не является переменной среды. – PetSerAl

ответ

0

Переменная $pwd занимает текущее местоположение. Это то, что вы имели в виду?

+0

Я не хочу получать текущее местоположение в сценарии PowerShell, но вызывать сценарий PowerShell с текущим местоположением ярлыка. – MisterGray

+0

О нас: [environment] :: GetFolderPath ('cd') – restless1987

0

Изменить это:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -command "& 'C:\temp\CurrentLocation.ps1'" -location %cd% 

Для этого:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noprofile -file C:\temp\CurrentLocation.ps1 -location "%cd%" 

Кроме того, это может быть простой подход:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noprofile -command (get-location).Path 
+0

Спасибо, ваш второй подход сделал трюк, я думаю, вы имели в виду C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ powershell.exe -noprofile -command "C: \ temp \ CurrentLocation.ps1" (get-location) .Path. Однако ваша первая команда даст мне результат: «% cd%», это сработало для вас? – MisterGray

Смежные вопросы