2017-12-18 182 views
0

我有一個bat.file,我打電話給我的ps1腳本。 我就會犯路徑PS1腳本如何從批處理提交路徑變量到ps1

蝙蝠:

... 
set path="\\wka-wn-stda3\xKarten\A\" 
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '%~dpn0.ps1'" 

PS1:

$path="\\wka-wn-stda3\xKarten\A\" 
... 

我會從批處理文件中PS1-裏面的路徑文件。我怎麼能意識到這一點? 希望有人能幫助我!

回答

0
  1. 閱讀並遵守about_Environment_Variables

您還可以顯示和更改環境變量的值 不使用cmdlet的使用Windows PowerShell中的表達式解析器。要顯示的環境變量的值,可以使用 以下語法:

$Env:<variable-name> 
  • 不要設置%PATH%環境變量任意地,讀%PATH% command
  • %PATH%環境變量包含文件夾列表。當在CMD提示符處發出 命令時,操作系統將首先在當前文件夾中查找可執行文件,如果未找到,則 將掃描%PATH%以查找它。

  • 應用set "varname=value"語法,而不是 set varname="value" (的"雙引號注的位置)。例如:
  • ==> set var="%cd%" 
    
    ==> powershell -noprofile -command (Get-Childitem $env:var -filter "*.ps1").Name 
    Get-Childitem : Cannot find drive. A drive with the name '"d' does not exist. 
    At line:1 char:2 
    + (Get-Childitem $env:var -filter *.ps1).Name 
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
        + CategoryInfo   : ObjectNotFound: ("d:String) [Get-ChildItem], DriveNotFoundException 
        + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 
    
    
    ==> set "var=%cd%" 
    
    ==> powershell -noprofile -command (Get-Childitem "$env:var" -filter "*.ps1").Name 
    cliparser.ps1 
    
    ==> 
    
    相關問題