我创建了一个包含以下代码行的批处理文件,当执行该批处理文件时,未创建新文件夹。我不想创建新的 .ps1 文件并将代码放入其中。
START /W powershell -noexit $FolderPath= "C:\TestFolder"
#Check if Folder exists
If(!(Test-Path -Path $FolderPath))
{
New-Item -ItemType Directory -Path $FolderPath
Write-Host "New folder created successfully!" -f Green
}
正如 Stephan 已经评论的那样,您不能从批处理脚本中运行 powershell 代码。实际上没有办法做到这一点,因为这两个系统使用完全不同的语言,具有不同的安全性等。
所以你的选择是:
1 - 使用 PowerShell,在这种情况下,您需要将该代码添加到 .ps1 文件并从那里运行它。
2 - 使用批处理,在这种情况下,您需要更改代码以使用批处理脚本方法来执行您需要的操作。因此,就您的示例而言,您希望将该代码替换为以下 batchscriptp 代码:
set FolderPath="c:\TestFolder\"
if not exist %FolderPath% (
mkdir %FolderPath%
echo "New folder created successfully!"
)
这将做同样的事情(减去绿色文本)。