我正在编写一个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) 我正在尝试使用以下命令创建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) 我希望cpu百分比按降序排列.当我发出命令:
top -bn 1 | grep "^ " | awk '{ printf("%-8s %-8s \n", $2, $9); }' | head -8
Run Code Online (Sandbox Code Playgroud)
它显示了使用CPU不是最重要的进程.
我有两个文件:
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) 我在处理 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,但都没有成功。
导出和排序时如何保留特殊字符 ä,ö,ü 等?
我正在编写一个脚本,用于根据特定规格自动设置新机器,其中包括下载一堆程序和更改用户首选项。
我只是为下载和注册表编辑设置一个变量,但大多数下载的软件包都是通过 Chocolatey 进行的,它似乎没有试运行(假设)模式。
有没有一种方法可以在仅打印将执行的操作的模式下运行脚本,以便在测试程序时实际上不会下载或更改任何内容?
我在使用“|”将一行拆分为数组时遇到问题 放在文本文件中并按一定顺序重新组装。文本文件中有多行与原始行类似。
这是原来的行:
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) 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) 我需要安排一个 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
执行两个用分号分隔的 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 ×6
bash ×2
linux ×2
shell ×2
applescript ×1
batch-file ×1
c# ×1
chocolatey ×1
cmd ×1
csv ×1
datetime ×1
dry-run ×1
escaping ×1
exif ×1
export-csv ×1
formatting ×1
import-csv ×1
join ×1
macos ×1
quotes ×1
scripting ×1
sorting ×1
testing ×1
text-parsing ×1
ubuntu ×1
windows ×1