小编nix*_*xda的帖子

从Server.UrlEncode获取大写字符串

我希望它的输出为大写.这就是我所得到的Server.UrlEncode("http://"):

http%3a%2f%2f
Run Code Online (Sandbox Code Playgroud)

但是我需要:

http%3A%2F%2F
Run Code Online (Sandbox Code Playgroud)

C#中有内置的解决方案吗?


编码的url应作为签名基本字符串(输入到签名算法)来创建摘要(哈希).然后哈希将由其他系统(java,php等)验证,因此他们需要首先通过签名重建来重新创建哈希.

c# encoding urlencode

14
推荐指数
2
解决办法
5133
查看次数

VBA哈希字符串

如何使用Excel VBA获取长字符串的简短哈希

什么是给定的

  • 输入字符串不超过80个字符
  • 有效输入字符为:[0..9] [A_Z]._/
  • 有效输出字符为[0..9] [A_Z] [a_z] (可以使用大小写)
  • 输出哈希值不应超过~12个字符(更短更好)
  • 不需要是唯一的,因为这将导致太长的哈希

到目前为止我做了什么

我认为这个答案是一个很好的开始,因为它生成一个4位十六进制代码(CRC16).

但是4位数字很少.在我的400字符串测试中,20%在其他地方得到了重复.
产生碰撞的机会太高了.

Sub tester()
    For i = 2 To 433
        Cells(i, 2) = CRC16(Cells(i, 1))
    Next i
End Sub


Function CRC16(txt As String)
Dim x As Long
Dim mask, i, j, nC, Crc As Integer
Dim c As String

Crc = &HFFFF

For nC = 1 To Len(txt)
    j = Val("&H" + Mid(txt, nC, 2))
    Crc = Crc Xor j
    For j = 1 …
Run Code Online (Sandbox Code Playgroud)

hash vba excel-2003

14
推荐指数
3
解决办法
4万
查看次数

Powershell获取文件的父文件夹

我正在编写一个脚本,用于存档文件以供分析.我的问题是文件名在多个文件夹中不是唯一的,因此它们被覆盖.

例如:

C:\StuffToCopy\Folder1\myFile1.txt
C:\StuffToCopy\Folder1\myFile2.txt
C:\StuffToCopy\Folder2\myFile1.txt
C:\StuffToCopy\Folder2\myFile2.txt
Run Code Online (Sandbox Code Playgroud)

在我的复制过程结束时,我只收到2个文件,但我想要4个.

我希望输出如下:

C:\ArchiveCopy\Folder1_myFile1.txt
C:\ArchiveCopy\Folder1_myFile2.txt
C:\ArchiveCopy\Folder2_myFile1.txt
C:\ArchiveCopy\Folder2_myFile2.txt
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的脚本.

$files = dir -r -path "C:\StuffToCopy\" -i *.*

foreach ($file in $files)
{
    if ($file.LastWriteTime -gt (get-date).AddDays(-1)) {
        copy -path $file C:\ArchiveCopy\
    }
}
Run Code Online (Sandbox Code Playgroud)

我想做点什么 copy -path $file.FolderName & '_' & $file C:\ArchiveCopy\

我只是不确定该怎么做.

powershell

12
推荐指数
3
解决办法
4万
查看次数

使用本地图像作为输入使用Google图像搜索的脚本

我正在寻找批处理或Powershell脚本,以使用本地图像作为输入在Google图像上搜索类似的图像.

在此输入图像描述

我的研究到目前为止

使用URL而不是本地文件进行图像搜索的语法如下:
https://www.google.com/searchbyimage?image_url=TEST
其中TEST可以替换为您拥有的任何图像URL.

我使用cURL for windowsimgur作为临时图像保护程序.我能够通过批量上传文件到imgur.然后使用图片网址在Google上搜索类似的图片.

但我想知道是否可以不使用像imgur或任何其他在线图片服务的任何临时缓存.只是批量,卷曲,谷歌和我.

只是一个想法.VBS脚本是否能够使用本地文件作为输入在Google图像上进行搜索?
或者像Tineye这样的类似Web服务更适合这项任务?


此PowerShell代码段将打开谷歌图像搜索.

$IE= new-object -com InternetExplorer.Application
$IE.navigate2("https://www.google.com/imghp?hl=en")
while ($IE.busy) {
sleep -milliseconds 50
}
$IE.visible=$true
Run Code Online (Sandbox Code Playgroud)

接下来的步骤是获取某些按钮的ID并以编程方式单击它们以选择本地文件.但在这里,我没有足够的经验来实现这一目标.

powershell curl batch-file google-image-search

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

在PowerShell中将秒转换为hh:mm:ss,fff格式

我有一个字符串表示以秒和毫秒为单位的时间.我想将其转换为格式为"hh:mm:ss,fff"的字符串.

我的解决方案仍有缺陷,小于10的小时显示为一个小数而不是两个:

PS> $secs = "7000.6789"
PS> $ts =  [timespan]::fromseconds($s)
PS> $res = "$($ts.hours):$($ts.minutes):$($ts.seconds),$($ts.milliseconds)"
PS> $res
PS> 1:56:40,679
Run Code Online (Sandbox Code Playgroud)

实现这一目标的正确方法是什么?我确信有更优雅的方式-f和日期时间.

powershell powershell-2.0 windows-7-x64

11
推荐指数
3
解决办法
4万
查看次数

比较 Powershell 中的 Filehash

我是一个Powershell。下午的大部分时间我都在盯着屏幕,试图弄清楚如何比较两个不同目录中多个文件的文件哈希。该脚本会将文件从 FTP 站点下载到一个目录 ($cDlPath) 中,并最终将它们复制到另一个目录 ($cDestPath)。我想比较文件中的文件哈希,以确保自下载以来没有任何变化。我正在使用 Get-Hash cmdlet 来获取文件哈希,但我不知道如何比较这两个哈希。如果文件不相等,我希望能够按名称识别更改的文件,以便检查文件。

我一直在摆弄下面的代码,但这似乎不是我想要的。

Compare-Object `
-ReferenceObject $(Get-ChildItem $cDestPath -Recurse | Where-Object {!$_.psiscontainer } | Get-Hash -Algorithm $cHashAlg) `
-DifferenceObject $(Get-ChildItem  $cDlPath -Recurse | Where-Object {!$_.psiscontainer } | Get-Hash -Algorithm $cHashAlg)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。


我正在使用下面的代码,我似乎更接近一些。

Compare-Object $(Get-ChildItem $cDlPath -Recurse $_ | Where-Object { !$_.PsIsContainer } |  
  Select-Object Name, FullName, Length, @{Name=”SHA256 Hash”; Expression={ Get-Hash $_.FullName  
  -Algorithm "SHA256" }}, LastWriteTime) $( Get-ChildItem $cDestPath -Recurse $_ | Where-Object  
  { !$_.PsIsContainer } | Select-Object Name, FullName, Length, @{Name=”SHA256 Hash”; …
Run Code Online (Sandbox Code Playgroud)

powershell hash

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

如何在Powershell中有效地填充数组

我想使用Powershell尽可能快地填充具有相同整数值的动态数组.
Measure-Command显示我的系统需要7秒才能填满它.
我当前的代码(剪切)看起来像:

$myArray = @()
$length = 16385
for ($i=1;$i -le $length; $i++) {$myArray += 2}  
Run Code Online (Sandbox Code Playgroud)

(完整代码可以在gist.github.com超级用户上看到)

考虑一下$length可以改变.但为了更好地理解,我选择了固定长度.

问:如何加速此Powershell代码?

arrays powershell

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

Workbooks.OpenText 不采用“fieldinfo”参数

以下代码演示了问题标题中所述的问题。

将其复制并粘贴到新的 Microsoft Excel 2003 工作簿中。

Sub mytest()
    mypath = Application.GetSaveAsFilename()

    Workbooks.OpenText Filename:=mypath, DataType:=xlDelimited, _ 
        TextQualifier:=xlTextQualifierDoubleQuote, _ 
        semicolon:=True, _ 
        fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)), _ 
        Local:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

执行代码。它将要求输入文件,您应该在其中使用此分号分隔的test.csv。它创建一个新工作簿并将所有数据从 test.csv 导入到 sheet1。

下图显示了结果
在此处输入图片说明

但它应该显示这样的结果
在此处输入图片说明


fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
声明 Excel 应将所有导入的数据视为文本。不幸的是它没有。

有人可以告诉我如何以正确的方式使用 opentext 和 fieldinfo 吗?

我已经知道 QueryTables.Add(Connection[...]
的解决方法。但这不是我的情况的解决方案。

vba parameter-passing ms-office excel-2003

5
推荐指数
1
解决办法
8643
查看次数

批量替换多个不同的字符串

我发现下面的解决方案替换字符串,但我不完全理解它.
如何更改代码以每行替换3个字符串?
我的更改(第12行和第13行)尚未生效.

没有运行第二个和第三个循环是否可能?

ECHO off
SETLOCAL enabledelayedexpansion

SET source="C:\source.srt"
SET target="C:\target.srt"

IF EXIST %target% DEL /f %target%

FOR /f "delims=" %%i IN ('FINDSTR . %source%') DO (
   SET line=%%i
   SET line=!line:ö=oe!
   SET line=!line:ä=ae!
   SET line=!line:ü=ue!
   ECHO !line! >> %target%
)
Run Code Online (Sandbox Code Playgroud)

windows string replace batch-file

5
推荐指数
1
解决办法
3540
查看次数

使用Powershell的方法Get-Childitem时排除多个子文件夹

是)我有的

以下工作代码列出了放置脚本的所有子文件夹中的所有文件.
它仅包含某些文件类型,并排除某个文件夹中的所有文件.到现在为止还挺好

$fileInclude = @("*.txt", "*.hgr", "*.dat")           
$folderExclude = "C:\folder2"    
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition

gci $scriptPath -recurse -include $fileFilter | Where {$_.FullName -notlike "$folderExclude*"} 
Run Code Online (Sandbox Code Playgroud)

我的测试的文件结构如图所示

C:.
?   Myscript.ps1
?
????folder1
?   ?   file1.dat
?   ?   file1.hgr
?   ?   file1.txt
?   ?
?   ????folder3
?           file3.dat
?           file3.hgr
?           file3.txt
?
????folder2
        file3.dat
        file3.hgr
        file3.txt
Run Code Online (Sandbox Code Playgroud)

我想要的是

现在我想替换第二行

$folderExclude = "C:\folder2"
Run Code Online (Sandbox Code Playgroud)

用数组.后来有几十条路径.

$folderExclude = @(
        "C:\folder2", 
        "C:\folder1\folder3"    
        )
Run Code Online (Sandbox Code Playgroud)

显然这不会起作用,因为-notlike需要一个字符串而不是一个字符串数组.

我无法理解如何实现这一点.我想我需要一个for-each循环?

powershell foreach

5
推荐指数
1
解决办法
6777
查看次数