问:
how to run a .ps1 script within another pwsh script?
如何在另一个 pwsh 脚本中运行 .ps1 脚本?
答:
Here are the ways to run a .ps1 script within another PowerShell script:
以下是在另一个 PowerShell 脚本中运行 .ps1 脚本的方法:
1. Using the Call Operator (&):
1. 使用呼叫运算符 (&):
This is the most common and straightforward method.
这是最常见、最直接的方法。
Syntax: & C:\path\to\your\script.ps1
Example:
PowerShell
& C:\Scripts\myFunctions.ps1
请谨慎使用这些代码。了解详情
2. Using the Invoke-Expression Cmdlet:
2. 使用 Invoke-Expression Cmdlet:
Offers more flexibility, like evaluating expressions and variables.
提供更大的灵活性,例如计算表达式和变量。
Syntax: Invoke-Expression -Command "C:\path\to\your\script.ps1"
Example:
3. Using the Dot-Source Operator (.):
3. 使用点源运算符 (.):
Executes the script in the current scope, allowing access to its functions and variables.
在当前作用域中执行脚本,允许访问其函数和变量。
Syntax: . C:\path\to\your\script.ps1
Example:
PowerShell
. C:\Scripts\myFunctions.ps1
请谨慎使用这些代码。了解详情
4. Using the Start-Job Cmdlet:
4. 使用启动作业 Cmdlet:
Runs the script in a separate job, allowing parallel execution.
在单独的作业中运行脚本,允许并行执行。
Syntax: Start-Job { C:\path\to\your\script.ps1 }
Example:
Execution Policy: Ensure the execution policy allows script execution. Use Get-ExecutionPolicy and Set-ExecutionPolicy to check and adjust.
执行策略:确保执行策略允许脚本执行。使用 Get-ExecutionPolicy 和 Set-ExecutionPolicy 检查和调整。
File Paths: Provide accurate paths to the scripts. Use absolute or relative paths as needed.
文件路径:提供脚本的准确路径。根据需要使用绝对或相对路径。
Scope: Understand the scope implications of each method (dot-sourcing shares variables and functions, while others run in separate scopes).
范围:了解每种方法的范围含义(点源共享变量和函数,而其他方法在单独的范围中运行)。
Error Handling: Implement proper error handling to catch any issues during script execution.
错误处理:实施适当的错误处理以捕获脚本执行期间的任何问题。
Asynchronous Execution: For non-blocking execution, consider using jobs (Start-Job) or PowerShell workflows.
异步执行:对于非阻塞执行,请考虑使用作业 (Start-Job) 或 PowerShell 工作流。 作者: mimi820 时间: 2024-1-26 19:05
还是不喜欢修改系统默认host文件。。作者: tenyu 时间: 2024-1-26 19:15
直接在github后加一个fast就行作者: nathan6498 时间: 2024-1-26 19:40
谢谢分享作者: 2267981144 时间: 2024-1-26 20:28
多谢分享!作者: dyc086 时间: 2024-1-26 20:48
修改试一下,感谢分享作者: get9 时间: 2024-1-26 21:05