簡體   English   中英

如何在Powershell Replace命令中使用變量(來自Windows CMD)

[英]How to use a variable in powershell replace command (from Windows CMD)

我目前正在使用以下命令在文件中進行查找和替換(我在代碼中用Google搜索,並剛剛添加了-encoding UTF8因為否則Apache拒絕將文件讀取為php文件):

powershell -Command "(gc app.php) -replace '/../', '/../new_project_name/' | Out-File -encoding UTF8 app.php"

只要文件夾為“ new_project_name”,代碼就可以正常工作。 new_project_name實際上應該是一個變量名。 例如,如果SET new_project_name=example則功能SET new_project_name=example如下:

powershell -Command "(gc app.php) -replace '/../', '/../example/' | Out-File -encoding UTF8 app.php"

我試過將變量傳遞給powershell命令,但要么出錯,要么不做任何更改。

從批處理腳本啟動的PowerShell命令的env:范圍中的批處理腳本中定義的變量可用(因為它繼承了父腳本的環境):

Set "new_name=example"
powershell -Command "(gc app.php) -replace '/../', \"/../$env:new_name/\" | ..."

請注意,如果在(PowerShell)字符串中使用變量,則必須將該字符串用雙引號引起來。 單引號不起作用。 對於CMD,使用反斜杠轉義嵌套的雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM