首页 > 解决方案 > 如何在命令提示符窗口中将 powershell 多行命令用作单行

问题描述

有没有办法在命令提示符窗口中一次输入?当您在 poweshell 窗口中逐行输入此代码时,该代码运行良好且没有错误。

c:\Windows\system32>powershell -command $ACL=New-Object System.Security.AccessControl.FileSecurity ^
   $AccessRule=New-Object System.Security.AccessControl.FileSystemAuditRule("User", "Write", "Success") ^
   $ACL.AddAuditRule($AccessRule) ^
   $ACL | Set-Acl C:\Users\User\Desktop\testfile.txt

我搜索了很多方法,但我无法在一行中完成。我尝试了很多不同的方法,但都失败了。我想在批处理文件中使用这种方法。我真的需要高级用户的帮助。期待您的最佳回应。谢谢你。

标签: powershellbatch-file

解决方案


这里有两件事。首先 - 您需要;字符来分隔命令。第二 - 照顾双引号和单引号:)

如何使用 CLI 运行 PS 命令:https ://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Core/About/about_PowerShell_exe?view=powershell-5.1

所以 - 它需要看起来像这样:

C:\Temp>powershell "$ACL=New-Object System.Security.AccessControl.FileSecurity; $AccessRule=New-Object System.Security.AccessControl.FileSystemAuditRule('User', 'Write', 'Success');$ACL.AddAuditRule($AccessRule);$ACL | Set-Acl C:\Users\User\Desktop\testfile.txt"

推荐阅读