小编Dar*_*te1的帖子

PowerShell 正则表达式匹配字符串的开头

有一个正则表达式可以完全满足我的要求,但我希望它能够仅检查字符串的开头,而不查看其后面的内容。

工作正则表达式:

[RegEx]$RegEx = "(.+?) (.+?)-(.+?)-(.+?)$"
Run Code Online (Sandbox Code Playgroud)

失败的尝试:

[RegEx]$RegEx = "^((.+?) (.+?)-(.+?)-(.+?))"
[RegEx]$RegEx = "\A(.+?) (.+?)-(.+?)-(.+?)"
Run Code Online (Sandbox Code Playgroud)

例子:

# Ok:
BEL Green-Fruit-Appel Stuff
BEL Green-Fruit-Appel Other stuff stuff

# Not ok (without anything):
BEL Green-Fruit-Appel            
Run Code Online (Sandbox Code Playgroud)

更多信息请点击此处

感谢您的帮助。

regex powershell

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

PowerShell在Invoke-Command上发送Argumentlist

如何使用哈希表中收集的参数与ArgumentListon 一起使用Invoke-Command

$CopyParams = @{
    Source      = 'E:\DEPARTMENTS\CBR\SHARE\Target'
    Destination = 'E:\DEPARTMENTS\CBR\SHARE\Target 2'
    Structure   = 'yyyy-MM-dd'
}
Invoke-Command -Credential $Cred -ComputerName 'SERVER' -ScriptBlock ${Function:Copy-FilesHC} -ArgumentList @CopyParams
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,它总是抱怨'来源':

Cannot validate argument on parameter 'Source'. The "Test-Path $_" validation script for the argument with
 value "System.Collections.Hashtable" did not return true. Determine why the validation script failed
Run Code Online (Sandbox Code Playgroud)

这篇博客谈到了类似的问题,但我无法让它发挥作用.

对于一个简单的Copy-Item内部Invoke-Command例子来说也是如此:

Invoke-Command -Credential $Cred -ComputerName 'SERVER' -ScriptBlock {Copy-Item} -ArgumentList @CopyParams

Invoke-Command : Missing an argument for …
Run Code Online (Sandbox Code Playgroud)

powershell argument-passing invoke-command

5
推荐指数
2
解决办法
6927
查看次数

Gulp 抛出错误“必须使用 import 来加载 ES 模块”

我们将gulpfile.jsin 节点转换v13.8.0为 ES6,如下所示:

import { src, dest, series, parallel, watch } from 'gulp'
import nodemon from 'gulp-nodemon' // normal nodemon does not display an error on app crash
import env from 'gulp-env'
import browser from 'browser-sync'
import sass from 'gulp-sass'
// Tasks
export default {
    cssTranspile: cssTranspile,
    jsTranspile: jsTranspile,
    server: series(startNodemon, startBrowserSync),
    default: series(
        parallel(
            cssTranspile,
            jsTranspile
        ),
        startNodemon,
        startBrowserSync,
        function () {
            watch('public/scss/*.scss', cssTranspile)
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

简单运行时报告的错误gulp是:

internal/modules/cjs/loader.js:1160
      throw new ERR_REQUIRE_ESM(filename, parentPath, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js gulp

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

Azure 应用程序客户端 ID 存储在前端是否安全?

在 Microsoft 网站上,他们提供了多个示例,介绍如何使用msalSPA 中的 Azure AD 对用户进行身份验证。在所有这些示例中,它们都Application (client) ID以纯文本形式存储在代码中或简单.json文件中。

我的问题是,考虑到存储在前端的所有内容都被认为是公开的,简单地将应用程序配置存储Azure (client) IDjson文件中是否是一种不好的做法?或者将其更好地存储在.env文件中?

这些是应用程序运行所需的详细信息:

AZURE_APP_CLIENT_ID=""
AZURE_APP_AUTHORITY=""
AZURE_APP_REDIRECT_URI=""
AZURE_APP_POST_LOGOUT_REDIRECT_URI=""

API_URI=""
API_AZURE_EXPOSED_SCOPE=""
Run Code Online (Sandbox Code Playgroud)

javascript security azure single-page-application vue.js

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

如何按需触发一次graphql useQuery?

在graphql-codegenerator的帮助下,我们创建了一个useQuery能够正确从后端检索数据的graphql 。当在输入字段中输入字符串时,driverRule将调用该函数来验证输入,该函数又应该调用useQuery唯一一次。

问题

但是,当我们立即执行enable使用 useQuery 的查询时ref,会使用该方法调用第二次执行refetch()。所有后续调用driverRule将仅根据需要调用 useQuery 一次。但第一个调用会执行两次,这是不希望的。

import {computed, defineComponent, ref } from '@vue/composition-api'
import { useSapTruckRosterDriverQuery } from 'src/graphql/generated/operations'

export default defineComponent({
  setup(_, { emit }) {
    const showTruckId = ref(false)
    const driverId = computed(() => (!showTruckId.value ? answer.value : ''))
    const queryEnabled = ref<'driver' | 'truck'>()

    const { refetch: getDriverQuery } = useSapTruckRosterDriverQuery(
      () => ({ id: driverId.value }),
      () => ({ …
Run Code Online (Sandbox Code Playgroud)

vue.js graphql vue-component apollo-client vue-composition-api

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

PowerShell设置高级NTFS权限

我正在尝试应用在Windows安全设置的"高级"选项卡中定义的NTFS权限.一个ACL $Rule用于This folder only,另一个用于Subfolders and files only.

权限经过大量修改,如下所示:

(Get-Acl 'L:\Test\Beez\RAPJOUR\Appels List\Correct').Access

FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : None

FileSystemRights  : CreateFiles, AppendData, DeleteSubdirectoriesAndFiles, ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : Domain\Dirk
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

FileSystemRights  : DeleteSubdirectoriesAndFiles, Modify, Synchronize
AccessControlType : Allow
IdentityReference : Domain\Dirk
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : InheritOnly
Run Code Online (Sandbox Code Playgroud)

仅此文件夹

  • 一切都在开启,除了:完全控制,写入属性,写入扩展属性,删除,更改权限和获取所有权.

仅限子文件夹和文件

  • 一切都在开启,除了:完全控制,更改权限和获得所有权. …

permissions powershell ntfs

4
推荐指数
2
解决办法
5万
查看次数

将所有输出重定向到 PowerShell 中的文件

我想将所有输出重定向到一个文件,如下所示:

Write-Error 'bla' *>>  '\\SERVER\s$\Test\test.log'
Run Code Online (Sandbox Code Playgroud)

问题是当我想使用 a 时LiteralPath,它会失败,因为它试图将路径解析为 a wildcard path。所以这失败了:

Write-Error 'bla' *>>  '\\SERVER\s$\Test\test[0].log'
Run Code Online (Sandbox Code Playgroud)

尝试时,Write-Error 'bla' | Out-File -LiteralPath它不会将错误写入文件,而只会写入控制台。

当文件名中使用特殊字符时,有没有办法将所有输出都保存在文件中?

powershell stderr

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

PowerShell完全复制数组

我正在尝试创建现有数组的完整副本.每次我尝试这个似乎都不起作用.问题是我正在修改新复制数组中的Object名称,但它们也在原始数组中进行了更改.

下面的代码是高度简化的,因为有更多的事情发生,然后只重命名对象名称,但它证明了我认为的重点.

一些示例代码:

Function Get-Fruits {
    Param (
        $Fruits = @('Banana', 'Apple', 'Pear')
    )
    foreach ($F in $Fruits) {
        [PSCustomObject]@{
            Type = $F
        }
    }
}

$FruitsOriginal = Get-Fruits

Function Rename-ObjectName {
    # Copy the array here
    $FruitsNew = $FruitsOriginal # Not a true copy
    $FruitsNew = $FruitsOriginal | % {$_} # Not a true copy
    $FruitsNew = $FruitsOriginal.Clone() # Not a true copy

    $FruitsNew | Get-Member | ? MemberType -EQ NoteProperty | % {

        $Name = $_.Name

        $FruitsNew | …
Run Code Online (Sandbox Code Playgroud)

arrays powershell

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

在数组中查找重复项

以下代码产生一个Array

[Array]$Object = [PSCustomObject]@{
    P1 = 'Appel'
    P2 = 'Cherry'
    P3 = 'Appel'
    P4 = 'Banana'    
}
$Object += [PSCustomObject]@{
    P1 = 'Good'
    P2 = 'Bad'
    P3 = 'Good'
    P4 = 'Good'
}
$Object += [PSCustomObject]@{
    P1 = 'Green'
    P2 = 'Red'
    P3 = 'Green'
    P4 = 'Yellow'
}
$Object
Run Code Online (Sandbox Code Playgroud)

这会产生:

P1         P2         P3       P4                          
--         --         --       --                          
Appel      Cherry     Appel    Banana                      
Good       Bad        Good     Good                        
Green      Red        Green    Yellow 
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何让它报告重复项,在这种情况下,期望的结果P1P3因为它们都具有相同的信息: …

arrays powershell duplicates

4
推荐指数
2
解决办法
8951
查看次数

如何在 Promise 解决之前执行代码

使用msal 库时,可以使用重定向流进行身份验证。这意味着用户将导航到 Microsoft 登录页面,并在成功进行身份验证后导航回 SPA。以下代码处理此问题:

auth
  .handleRedirectPromise()
  .then(() => {
    const { setAccountID } = useAccount()
    setAccountID()
  })
  .catch((error) => {
    console.log('login with redirect failed: ', error)
  })
Run Code Online (Sandbox Code Playgroud)

msal 方法handleRedirectPromise返回一个 Promise,一旦解决,我们就用它来设置登录帐户。但是,如果可以在true调用此 Promise 之前将加载按钮的状态设置为该状态,那就太好了。

有没有办法“挂钩”Promise,以便在调用之前可以执行一些代码?

用伪术语来说,它会是这样的:如果handleRedirectPromise被调用,则将按钮状态加载设置为true,一旦解决,将其设置为false

javascript msal.js

4
推荐指数
1
解决办法
5050
查看次数