输出文件时将Powershell环境变量用作字符串

新人

我正在使用Get-WindowsAutopilotInfo生成计算机的序列号和哈希码,并将该信息导出为CSV。

这是我通常使用的代码:

new-item "c:\Autopilot_Export" -type directory -force

Set-Location "C:\Autopilot_Export"

Get-WindowsAutopilotInfo.ps1 -OutputFile Autopilot_CSV.csv

Robocopy C:\Autopilot_Export \\Zapp\pc\Hash_Exports /copyall

C:\Autopilot_Export会将名为“ Autopilot_CSV.csv”的CSV文件输出到该目录,然后Robocopy将其复制到上面列出的Hash_Exports文件夹内的Network Share驱动器中。在上面的代码中,如果我手动输入“ test”,“ 123”,“ ABC”等并替换为“ Autopilot_CSV”,它也会在所有这些名称下输出CSV。因此,看起来Get-WindowsAutopilotInfo将创建一个CSV文件,并使用传递给它的任何字符串保存文件名。伟大的。

但是,我在多台不同的计算机上运行此脚本,并且希望将导出的CSV命名为运行该计算机的机器的唯一名称,以便在复制后可以轻松地对其进行识别。我试图将环境变量的值$env:computername作为CSV的字符串输入传递,但它不起作用。

这是我要使用的代码:

new-item "c:\Autopilot_Export" -type directory -force

Set-Location "C:\Autopilot_Export"

Get-WindowsAutopilotInfo.ps1 -OutputFile $env:computername.csv

Robocopy C:\Autopilot_Export C:\Users\danieln\Desktop /copyall

此代码根本不会生成CSV文件。为什么不?

我是否对Powershell中如何使用环境变量有基本的误解?$env:computername似乎返回了计算机名称的字符串,但是我无法将其传递到Get-WindowsAutopilotInfo并将其保存,但是如果我手动输入字符串作为输入,它将可以工作。

我也尝试将其设置为变量$computername = [string]$env:computername$computername然后在.CSV之前传入,这似乎也不起作用。根据文档,环境变量显然已经是字符串。

我想念什么吗?

谢谢!

的js2010

双引号似乎有效。冒号在powershell参数中是特殊的。

echo hi | set-content "$env:computername.csv"

dir


    Directory: C:\users\me\foo


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2/11/2021   1:02 PM              4 COMP001.csv

冒号很特别。例如在开关参数中:

get-childitem -force:$true

实际上,它正在尝试查找名为csv的属性:

echo hi | Set-Content  $env:COMPUTERNAME.length
dir


    Directory: C:\Users\me\foo


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2/11/2021   3:04 PM              4 8

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Powershell从环境变量读取连接字符串

来自分类Dev

将存储在环境变量中的rsa私钥写入JSON文件,而不会破坏JSON字符串

来自分类Dev

在Powershell中使用批处理样式环境变量解释字符串

来自分类Dev

在PowerShell中为环境变量进行字符串插值

来自分类Dev

在使用SED替换字符串时使用Ubuntu环境变量

来自分类Dev

在用于在循环中命名输出文件的字符串后插入变量?ENVI / IDL

来自分类Dev

将环境变量从双引号字符串转换为单引号

来自分类Dev

关闭读取文件并再次打开以将搜索结果字符串写入输出文件

来自分类Dev

如何将值作为字符串从类文件传输到输出文件?

来自分类Dev

无法将数组用作环境变量

来自分类Dev

Jenkins子字符串环境变量

来自分类Dev

嫉妒的环境变量是字符串吗?

来自分类Dev

Python解析字符串环境变量

来自分类Dev

如何插入代表环境变量的字符串

来自分类Dev

使用环境变量替换 sed 字符串

来自分类Dev

字符串未定向到输出文件(C ++)

来自分类Dev

使用SAM或Cloudformation将另一个堆栈的输出用作lambda的环境变量

来自分类Dev

写入输出文件时如何将2D数组行转换为制表符分隔的字符串

来自分类Dev

从MSBuild .targets文件输出环境变量

来自分类Dev

在两个模式之间找到字符串时,如何在sed中使用环境变量?

来自分类Dev

如何导出文件夹特定的环境变量?

来自分类Dev

将 private_key 用作环境变量时,其正确格式是什么?

来自分类Dev

尝试在Windows上的ubuntu上的bash上查找字符串时,输出文件爆炸

来自分类Dev

将字符串值用作变量名

来自分类Dev

将字符串值用作变量名

来自分类Dev

在yaml文件中将环境变量用作整数

来自分类Dev

将环境变量用作cmake选项的默认值

来自分类Dev

Powershell Write-host将变量中的参数输出为字符串

来自分类Dev

在扩展变量,将变量用作字符串文字并添加换行符的同时,在文件中进行文本替换

Related 相关文章

  1. 1

    使用Powershell从环境变量读取连接字符串

  2. 2

    将存储在环境变量中的rsa私钥写入JSON文件,而不会破坏JSON字符串

  3. 3

    在Powershell中使用批处理样式环境变量解释字符串

  4. 4

    在PowerShell中为环境变量进行字符串插值

  5. 5

    在使用SED替换字符串时使用Ubuntu环境变量

  6. 6

    在用于在循环中命名输出文件的字符串后插入变量?ENVI / IDL

  7. 7

    将环境变量从双引号字符串转换为单引号

  8. 8

    关闭读取文件并再次打开以将搜索结果字符串写入输出文件

  9. 9

    如何将值作为字符串从类文件传输到输出文件?

  10. 10

    无法将数组用作环境变量

  11. 11

    Jenkins子字符串环境变量

  12. 12

    嫉妒的环境变量是字符串吗?

  13. 13

    Python解析字符串环境变量

  14. 14

    如何插入代表环境变量的字符串

  15. 15

    使用环境变量替换 sed 字符串

  16. 16

    字符串未定向到输出文件(C ++)

  17. 17

    使用SAM或Cloudformation将另一个堆栈的输出用作lambda的环境变量

  18. 18

    写入输出文件时如何将2D数组行转换为制表符分隔的字符串

  19. 19

    从MSBuild .targets文件输出环境变量

  20. 20

    在两个模式之间找到字符串时,如何在sed中使用环境变量?

  21. 21

    如何导出文件夹特定的环境变量?

  22. 22

    将 private_key 用作环境变量时,其正确格式是什么?

  23. 23

    尝试在Windows上的ubuntu上的bash上查找字符串时,输出文件爆炸

  24. 24

    将字符串值用作变量名

  25. 25

    将字符串值用作变量名

  26. 26

    在yaml文件中将环境变量用作整数

  27. 27

    将环境变量用作cmake选项的默认值

  28. 28

    Powershell Write-host将变量中的参数输出为字符串

  29. 29

    在扩展变量,将变量用作字符串文字并添加换行符的同时,在文件中进行文本替换

热门标签

归档