小编mkl*_*nt0的帖子

如果没有传递参数,如何显示帮助文本

我最近一直在使用getopts而且我已经把所有东西都搞定了.我有一个问题.我希望它工作,以便如果有人没有在命令行上输入参数,他们会得到帮助文本,例如:

$ ./script
$ help: xyz - argument must be used.
Run Code Online (Sandbox Code Playgroud)

这就是我现在所拥有的.

#!/bin/bash

function helptext {
    # ...
}

function mitlicense {
    # ...
}


while getopts "hl" opt; do
  case $opt in
    h) helptext >&2
      exit 1
    ;;
    l) mitlicense >&2
      exit 0
    ;;
    \?) echo "Invalid option: -$OPTARG" >&2
      exit 1
    ;;
    :) echo "Option -$OPTARG requires an argument." >&2
      exit 1
    ;;
    *) helptext >&2
      exit 1
    ;;
  esac
done
Run Code Online (Sandbox Code Playgroud)

linux bash

8
推荐指数
3
解决办法
7504
查看次数

XML声明中的默认编码(UTF-8)的默认值如何?

我知道XML的默认编码是UTF-8.所有XML消费者都必须等等.因此,这不仅仅是XML是否具有默认编码的问题.

我也知道文档开头的XML-Declarataion<?xml version="1.0" ... ?>是可选的.并且指定其中的编码也是可选的.

所以我问自己,以下两个XML声明是否是完全相同的两个表达式:

<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

根据我自己目前的理解,我会说这些是等价的,但我不知道.是否已在某处指定了这两个声明的等效性?

(考虑这两个示例行,每个行都是XML文档的第一行,前面是任意(零)字节,并且是UTF-8编码的)

xml utf-8

8
推荐指数
3
解决办法
7818
查看次数

在第一次匹配之前插入行的命令

我有以下信息的文件

testing
testing
testing
Run Code Online (Sandbox Code Playgroud)

我想使用sed或任何linux命令在第一个测试单词之前插入一个单词(已测试)

需要输出像

tested
testing
testing
testing
Run Code Online (Sandbox Code Playgroud)

谢谢

linux awk sed

8
推荐指数
3
解决办法
1万
查看次数

在Powershell 4中压缩和解压缩文件

我使用的是Windows Server 2012 R2(64位).我有powershell版本4可用.我正在尝试压缩和解压缩文件.当我尝试Write-Zip命令时,它会抛出以下错误:

Write-Zip:术语"Write-Zip"不被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.

我该怎么做才能解决这个问题?我是否需要在服务器中安装zip/winrar?或者是否有其他命令执行zip/unzip文件?

powershell zip unzip powershell-4.0

8
推荐指数
2
解决办法
3万
查看次数

打开chrome-devtools://来自脚本/命令行的URL,而不是通过复制粘贴

为了自动运行和调试node.js应用程序,需要从脚本中打开调试URL; 例如.:

chromium "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9230/9229"&

如果我复制粘贴,铬中的URL工作正常.但正如我所说,这一步骤需要自动化.

如何chrome-devtools://devtools/bundled/inspector.html从脚本或命令行(Linux)中打开chrome/google-chrome 中的表单URL ?

linux google-chrome chromium node.js

8
推荐指数
1
解决办法
1842
查看次数

使用电子邮件地址获取 aduser

当我想从用户那里获取一些信息时,我使用这个:

Get-ADUser -Filter {EmailAddress -eq 'jperez@dominio.com'}
Run Code Online (Sandbox Code Playgroud)

但是当我想检查大量用户的信息时,我尝试这样做:

$batch| foreach {Get-ADUser -Filter {emailaddress -eq $_.email}} 
Run Code Online (Sandbox Code Playgroud)

email 是 CSV 文件中变量的名称,但我收到此错误:

“获取 ADUser:属性:在类型为“System.Management.Automation.PSCustomObject”的对象中找不到“电子邮件””

我无法使用该身份,因为该身份不支持 te emailaddresses

powershell email-address filter active-directory

8
推荐指数
1
解决办法
6万
查看次数

如何从快捷方式文件向 PowerShell 传递多个命令?

Windows 快捷方式的简单愿望:我想在特定目录中打开 PowerShell 窗口,然后让快捷方式输入并运行命令。

这是编辑快捷方式的“目标”时的样子:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command "cd 'C:\eARKIV\Programmer\Android ADB'" -Command 'test'
Run Code Online (Sandbox Code Playgroud)

目录更改有效,但在尝试通过快捷方式输入输入时出现以下错误:

"Set-Location : A parameter cannot be found that matches parameter name 'Command'."
Run Code Online (Sandbox Code Playgroud)

我怎样才能规避这一点并让它发挥作用?:(

powershell command-line-interface

8
推荐指数
1
解决办法
3697
查看次数

无法将“-persist”添加到 New-PSDrive - 出现错误“网络资源类型不正确”

正如标题所说,如果我尝试添加-persist到 cmdlt,它会返回一个错误:

New-PSDrive : The network resource type is not correct At line:1 char:1 + New-PSDrive -Name P -Root <redacted> ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand

作为参考,这是 PowerShell 中的管理员会话,但如果我在常规用户会话中执行此操作,我会得到完全相同的响应:

PS> $PSVersionTable.psversion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  666
Run Code Online (Sandbox Code Playgroud)

从一开始:我验证我要使用的驱动器号是否可用(在本例中为 P)

PS> get-psdrive

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Alias                                  Alias
C                  36.80         22.11 FileSystem    C:\                                               windows\system32
Cert …
Run Code Online (Sandbox Code Playgroud)

powershell windows-scripting drive-mapping powershell-v5.1 new-psdrive

8
推荐指数
1
解决办法
1万
查看次数

powershell 使用 &gt;&gt; 将输出写入 file.txt -Append

我正在创建一个脚本,并且想要同时使用 Write-Host 和 Write-Output 在工作时,我想要将从 AD 提取的信息的备份也附加到 .txt 文件中。这更多的是一种备份,以防我错过一条信息并需要返回并重新创建票证。无论如何,我有一个脚本样本,据我所知它应该可以工作。如果有更多经验的人可以看看或给我指出正确的方向,我将不胜感激。如果我需要添加更多脚本,我可以提供它。提前致谢。

Import-Module activedirectory
$object = Get-ADUser $sid -Properties * | Select-Object EmailAddress
Write-Host Email: $object.EmailAddress
Write-Output ("Email: $object.EmailAddress") >> C:\psoutput\psoutput.txt -Append
Run Code Online (Sandbox Code Playgroud)

这当然会创建 .txt 文件,但还会添加其他信息,例如:

Import-Module activedirectory
$object = Get-ADUser $sid -Properties * | Select-Object EmailAddress
Write-Host Email: $object.EmailAddress
Write-Output ("Email: $object.EmailAddress") >> C:\psoutput\psoutput.txt -Append
Run Code Online (Sandbox Code Playgroud)

我希望得到如下所示的输出......

Email: @{GivenName=myfirstname; Surname=mylastname; SamAccountName=myid; DisplayName=lastname, firstname - Contingent Worker; City=; EmailAddress=myemailaddress@mywork.com; EmployeeID=; Enabled=True; OfficePhone=; MobilePhone=(555) 555-5555; LockedOut=False; LockOutTime=0; AccountExpirationDate=05/09/2020 00:00:00; PasswordExpired=False; PasswordLastSet=12/03/2019 12:16:37}.EmailAddress
-Append
Run Code Online (Sandbox Code Playgroud)

来自 Active Directory …

powershell active-directory windows-10

8
推荐指数
1
解决办法
2万
查看次数

PowerShell - 如何以编程方式确定是否设置了 StrictMode?

我知道我可以在脚本或函数中覆盖从更高范围继承的 StrictMode 设置。但是我如何在脚本或函数中找出继承的设置是什么?

powershell strict

8
推荐指数
1
解决办法
1453
查看次数