如何在cmd / bat上编写这个powershell代码?

时间:2014-10-12 16:37:05

标签: shell powershell batch-file scripting cmd

如何在cmd / bat上编写此PowerShell代码?

Get-ChildItem -Path "$Pwd\text\*.txt" | ForEach-Object -Process 
{
    $filename = $_ | Select-Object -ExcludeProperty Name
    Start-Process notepad.exe -ArgumentList $filename -Wait
}

2 个答案:

答案 0 :(得分:1)

for %A in ("c:\somefolder\*.txt") do start "" /w notepad %A

逐个打开记事本中的所有文本文件。在命令提示符下键入批处理文件和%A时使用%% A.

答案 1 :(得分:0)

要从命令行运行powershell脚本,您可以执行以下操作:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "insert your code here"

e.g。

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Get-ChildItem -Path ('{0}\text\*.txt' -f $Pwd) | ForEach-Object -Process { $filename = $_ | Select-Object -ExcludeProperty Name; Start-Process notepad.exe -ArgumentList $filename -Wait;}"

最好,坚持进入.ps1文件,然后执行:

@powershell -NoProfile -ExecutionPolicy unrestricted -File .\MyScript.ps1

注意:-NoProfile -ExecutionPolicy unrestricted在上述帖子中是可选的;我倾向于发现它对大多数功能都有用,但并不总是需要它。将执行策略设置为不受限制被认为是不好的做法,但如果您自己编写所有代码,那应该没问题。