小编mkl*_*nt0的帖子

如何解析EXIF日期时间数据

我正在编写一个C#程序,它从JPEG文件中提取EXIF DateTimeOriginal字段,如果该属性在数据中,我需要将其解析为一个DateTime值.我的代码是:

BitmapFrame src = decoder.Frames[ 0 ];

if ( src.Metadata != null ) {
    BitmapMetadata metaData = (BitmapMetadata) src.Metadata;

    if ( metaData.ContainsQuery( "/app1/{ushort=0}/{ushort=34665}/{ushort=36867}" ) ) {
        object o = metaData.GetQuery( "/app1/{ushort=0}/{ushort=34665}/{ushort=36867}" );

        if ( o != null && o is string ) {
            string originalDate = Convert.ToString( o );

            if ( originalDate != null ) {
                if ( !DateTime.TryParseExact( originalDate.Trim(), "yyyy:MM:dd hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out createDate ) ) {
                    // Sets createDate to a default value if …
Run Code Online (Sandbox Code Playgroud)

c# datetime exif

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

AppleScript:错误"sh:lame:command not found"编号127

我正在尝试使用以下命令创建AppleScript.我遇到的问题是第三行有错误.我lame直接在终端中使用该命令没有问题.此外,lame它不是原生Mac实用程序; 我自己安装了它.有人有解决方案吗?

do shell script "cd ~/Downloads"

do shell script "say -f ~/Downloads/RE.txt -o ~/Downloads/recording.aiff"

do shell script "lame -m m ~/Downloads/recording.aiff ~/Downloads/recording.mp3"

-- error "sh: lame: command not found" number 127

do shell script "rm recording.aiff RE.txt"
Run Code Online (Sandbox Code Playgroud)

macos shell applescript

6
推荐指数
2
解决办法
3766
查看次数

用于以降序显示%cpu的top命令

我希望cpu百分比按降序排列.当我发出命令:

top -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s \n", $2, $9); }' | head -8
Run Code Online (Sandbox Code Playgroud)

它显示了使用CPU不是最重要的进程.

linux bash shell ubuntu

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

Linux join实用程序抱怨输入文件未被排序

我有两个文件:

file1的格式为:

field1;field2;field3;field4
Run Code Online (Sandbox Code Playgroud)

(file1最初未排序)

file2的格式为:

field1
Run Code Online (Sandbox Code Playgroud)

(file2已排序)

我运行以下两个命令:

sort -t\; -k1 file1 -o file1 # to sort file 1
join -t\; -1 1 -2 1 -o 1.1 1.2 1.3 1.4 file1 file2
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

join: file1:27497: is not sorted: line_which_was_identified_as_out_of_order
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

(我也尝试对file1进行排序,考虑到整条生产线不仅是该生产线的第一批,而且没有成功)

sort -t\; -c file1不输出任何东西.在第27497行附近,情况确实很奇怪,这意味着排序无法正常工作:

              XYZ113017;...
line 27497--> XYZ11301;...
              XYZ11301;...
Run Code Online (Sandbox Code Playgroud)

linux sorting bash text-processing join

6
推荐指数
2
解决办法
5509
查看次数

带有德国变音符号的导入-CSV/导出-Csv (ä,ö,ü)

我在处理 csv 导出时遇到了一个小问题,其中包含像 ä,ö,ü(德语元音变音)这样的变异元音

我只是导出

Get-WinEvent -FilterHashtable @{Path=$_;ID=4627} -ErrorAction SilentlyContinue |export-csv -NoTypeInformation -Encoding Default -Force ("c:\temp\CSV_temp\"+ $_.basename + ".csv")
Run Code Online (Sandbox Code Playgroud)

这工作正常。我的 csv 文件中有 ä,ö,ü 正确。

之后我做了一些排序:

Get-ChildItem 'C:\temp\*.csv' |
    ForEach-Object { Import-Csv $_.FullName } |
    Sort-Object { [DateTime]::ParseExact($_.TimeCreated, $pattern, $culture) } |
    Export-Csv 'C:\temp\merged.csv' -Encoding Default -NoTypeInformation -Force
Run Code Online (Sandbox Code Playgroud)

我尝试了所有编码、ASCII、BigEndianUnicode、UniCode,但都没有成功。

导出和排序时如何保留特殊字符 ä,ö,ü 等?

powershell character-encoding import-csv export-csv

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

执行使用 Chocolatey 的 Powershell 脚本的试运行

我正在编写一个脚本,用于根据特定规格自动设置新机器,其中包括下载一堆程序和更改用户首选项。

我只是为下载和注册表编辑设置一个变量,但大多数下载的软件包都是通过 Chocolatey 进行的,它似乎没有试运行(假设)模式。

有没有一种方法可以在仅打印执行的操作的模式下运行脚本,以便在测试程序时实际上不会下载或更改任何内容?

testing powershell scripting chocolatey dry-run

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

Powershell:逐行读取文本文件并按“|”分割

我在使用“|”将一行拆分为数组时遇到问题 放在文本文件中并按一定顺序重新组装。文本文件中有多行与原始行类似。

这是原来的行:

80055555|Lastname|Firstname|AidYear|DCDOCS|D:\BDMS_UPLOAD\800123456_11-13-2018 14-35-53 PM_1.pdf
Run Code Online (Sandbox Code Playgroud)

我需要它看起来像这样:

80055555|DCDOCS|Lastname|Firstname|AidYear|D:\BDMS_UPLOAD\800123456_11-13-2018 14-35-53 PM_1.pdf
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

$File = 'c:\Names\Complete\complete.txt'
$Arr = $File -split '|'
foreach ($line in Get-Content $File)
{
  $outputline = $Arr[0] + "|" + $Arr[4] + "|" + $Arr[1] + "|" + $Arr[2] + "|" + 
    "@@" + $Arr[5] |
      Out-File -filepath "C:\Names\Complete\index.txt" -Encoding "ascii" -append 
}
Run Code Online (Sandbox Code Playgroud)

csv powershell text-parsing

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

passing quoted arguments from batch file to `powershell start` - self-elevation on demand

I am writing a Windows batch file that automatically escalates itself to administrative permissions, provided the user clicks "Yes" on the User Access Control dialog that appears.

I am using a technique I learned here to detect whether we already have admin rights and another from here to escalate. When appropriate, the following script, let's call it foo.bat, re-launches itself via a powershell-mediated call to runas:

@echo off
net session >NUL 2>NUL
if %ERRORLEVEL% NEQ 0 (
powershell …
Run Code Online (Sandbox Code Playgroud)

quotes powershell escaping batch-file elevated-privileges

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

如何转义 schtasks /tr 参数

我需要安排一个 PowerShell 任务,如下所示:

powershell.exe -file ..\Execute\execute.ps1
Run Code Online (Sandbox Code Playgroud)

我尝试将它分配给一个参数,$Argument然后将其传递给schtasks如下所示:

$Argument = "powershell.exe -file '..\Execute\execute.ps1'"
schtasks /create /tn "SOE_Checks" /tr $Argument /sc DAILY /st 05:00 /ru "System" /rl HIGHEST /f
Run Code Online (Sandbox Code Playgroud)

但是在运行上面的代码后,什么也没发生 - 虽然任务创建成功,但它似乎没有运行。

我也尝试将它分配给$Argument没有引号,它有效,但我收到以下警告:

ERROR: Invalid syntax. Value expected for '/tr'.
Type "SCHTASKS /CREATE /?" for usage.
Run Code Online (Sandbox Code Playgroud)

谁能让我知道我在这里做错了什么?(我知道我可以使用 PowerShell 完成此操作,New-ScheduledTaskAction但我希望它以这种方式工作)

只是想补充一点,如果我改变的文件路径的特定位置$Argument这样的,
$Argument = "powershell.exe -file 'C:\SOE\Execute\execute.ps1'",它工作正常,没有任何警告,但这并不理想。

我已经阅读了这篇文章,但它对我不起作用

windows powershell cmd scheduled-tasks windows-task-scheduler

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

为什么在一行中运行两个 PowerShell 命令时输出格式会发生变化?

执行两个用分号分隔的 PowerShell 命令时,我得到了意想不到的结果。第二个命令的输出发生变化。如果我以相反的顺序运行它们,则看不到第二个命令输出。

在这里,我只是尝试获取时间戳和用户在 AD 中所属的组列表,作为单行。

如果我运行这一行,我会得到以下输出:

Get-ADPrincipalGroupMembership username | Select-Object name

name
----
Domain Users
CL-Inventory-Group
...
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行以下命令,此行为会发生变化:

get-date; Get-ADPrincipalGroupMembership username | Select-Object name

Wednesday, April 3, 2019 2:31:35 PM

name : Domain Users


name : CL-Inventory-Group


...
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,如果我反向运行,这意味着我在第一个命令之后说 get-date,则在列出组后永远不会显示日期戳。

我是否不正确地分隔命令?

powershell formatting

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