2015-05-03 133 views
1

我创建了一个小的aws.bat脚本,然后在PowerShell中导航到脚本目录。如何从Windows Powershell执行脚本?

但是,当我键入aws然后我收到一条错误消息,它不执行脚本。我应该做什么特别的事情?

这是我曾尝试:

PS C:\G> .\aws.bat 

C:\G>$BucketName = "ab-user" 
'$BucketName' is not recognized as an internal or external command, 
operable program or batch file. 

的第一项和每个othre命令有一个类似的消息。

回答

2

你不能只是自己输入名字,有或没有文件扩展名,你首先必须告诉powershell如何处理它。

你可以称它为如下:

& .\aws.bat 

如果您需要在PowerShell中返回检查bat文件工作的LastExitCode(0通常意味着它的工作,别的通常意味着它没有),使用Start-Process如下:

$batch = Start-Process -FilePath .\aws.bat -Wait -passthru;$batch.ExitCode 

如果你想,当它是由PowerShell中运行要隐藏的批处理文件这样做:

$batch = Start-Process -FilePath .\aws.bat -Wait -passthru -WindowStyle Hidden;$batch.ExitCode 
+0

您可以输入'.ps1'文件的扩展名以及'PATHEXT'环境变量(缺省为'.com; .exe; ;的.js; .jse;的.wsf; .wsh; .msc')。 – PetSerAl

+0

是的,但你必须告诉powershell如何处理它 - 即使在你路径中的'.bat',最小的最小值也是以'.'作为前缀,例如'。\ aws' –

+0

我尝试了两种解决方案,但是我收到消息说不能识别命令。但是,当我将它们直接键入Powershell窗口中时,它们都可以。 – Melina