在尝试重写批处理文件时,我正在研究使用PowerShell的可能性.我遇到的主要问题是.ps1
默认情况下文件不可执行.我在这里找到了一个解决方案,我将在下面复制,但我对第一行的语法非常困惑:
<# : batch script
@echo off
setlocal
cd %~dp0
powershell -executionpolicy remotesigned -Command "Invoke-Expression $([System.IO.File]::ReadAllText('%~f0'))"
endlocal
goto:eof
#>
# here write your powershell commands...
Run Code Online (Sandbox Code Playgroud)
这是我从测试中得知的:
<#
和:
需要,虽然可以有多个.3<# :
,这让我怀疑有一些涉及重定向和标签的怪异.git <# : batch script
,shell显示它试图评估git : batch script 0<#
并且找不到指定的文件#
改为有效的文件名会使投诉消失(自然).cmd
文件中的唯一行)也会默认成功最后一颗子弹是我想弄清楚的部分.环境有什么不同?我的理解是问题的一部分是运行bat文件被解析,好像每条线都是手动输入的.#
当通过脚本调用时,为什么不抱怨是无效文件?