我想用一些解释语言(Python、Go、Node等)编写跨平台脚本。
这在 *nix 系统 (MacOS、Linux、BSD) 中很简单,因为我只需要使用 将文件标记为可执行文件chmod +x ./myfile
,系统就会使用 shebang ( #!/usr/bin/env python
) 中指定的解释器执行该脚本。然后我可以使用 运行该文件,就像它是可执行文件一样./myfile
。
我想在 Windows 中复制这个,但是在 Powershell 运行中.\myfile
尝试使用图形操作系统“选择使用哪个应用程序运行它”对话框打开该文件。
在 Windows 中是否有等效项chmod +x ./myfile && ./myfile
,或者我是否必须指导人们使用完整命令(例如python ./myfile
)?
答案1
我所知道的最接近的是 Get-ACL/Set-ACL
您需要的等效 NTFS 权限是“遍历文件夹/执行文件”
示例代码:
$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
# Set properties
$identity = "BUILTIN\Administrators"
$fileSystemRights = "Traverse"
$type = "Allow"
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName
System.Security.AccessControl.FileSystemAccessRule -ArgumentList
$fileSystemAccessRuleArgumentList
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl
Set-ACL 文档: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-acl?view=powershell-7.2
NTFS文件系统权限说明: https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.filesystemrights?view=net-6.0