小编arc*_*444的帖子

在Textfile中找到特定的字符串 - Powershell

我知道这个问题可能是一个"新人问题",但我可能犯了一个逻辑错误.

我有一个文本文件,我想搜索它是否包含字符串.我尝试了如下所示,但它不起作用:

$SEL = "Select-String -Path C:\Temp\File.txt -Pattern Test"
if ($SEL -eq $null)
{
    echo Contains String
}
else
{
    echo Not Contains String
}
Run Code Online (Sandbox Code Playgroud)

powershell

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

检查"make"的输出,如果失败则退出bash脚本

然而,我不仅仅是打击,而是一个不仅仅是胆怯的人.我写了一个bash脚本,它将执行我的cmake,make和c ++可执行文件.

#! /bin/bash
cmake .
make
./pcl_visualizer_demo   <-- This is my executable
Run Code Online (Sandbox Code Playgroud)

这很好用,除非我的代码无法编译它执行旧的可执行文件并让我一团糟.我希望将make的输出放入if语句中,该语句仅在make成功时运行可执行文件.我在stackoverflow上尝试了很多其他帖子中的bash.一些问题似乎是make的输出不是一个字符串,例如:

OUTPUT = make
echo $OUTPUT
Run Code Online (Sandbox Code Playgroud)

得到:

[100%] Built target pcl_visualizer_demo
Run Code Online (Sandbox Code Playgroud)

但未能合作:

if [`expr match "$OUTPUT" '[100%] -eq 5]; then ./pcl_visulizer_demo; fi
Run Code Online (Sandbox Code Playgroud)

更不用说我认为这条线可能不止一件事.我也尝试过:

if [diff <(echo "$OUTPUT") <(echo '[100%] Built target pcl_visualizer_demo' -n]; then ./pcl_visulizer_demo; fi
Run Code Online (Sandbox Code Playgroud)

再次可能是我没有正确实施它.任何帮助

linux bash shell

7
推荐指数
3
解决办法
5724
查看次数

PowerShell - 从特定文件夹复制特定文件

所以,文件夹结构如下所示:

  1. SourceFolder
    • FILE1.TXT
    • 对File1.doc
      1. Subfolder1
        • FILE2.TXT
        • file2.doc
          1. SubSubFolder
            • file3.txt
            • doc3.txt

我想要做的是将文件夹中的所有.txt文件(其(文件夹)名称包含eng)复制到目标文件夹.只是文件夹中的所有文件 - 而不是文件结构.

我用的是这个:

$dest = "C:\Users\username\Desktop\Final"
$source = "C:\Users\username\Desktop\Test1"
Copy-Item $source\eng*\*.txt $dest -Recurse
Run Code Online (Sandbox Code Playgroud)

问题是它只从每个父文件夹而不是子文件夹复制.txt文件.

如何在此脚本中包含所有子文件夹并保留eng名称检查?你能帮我么?

我在谈论PowerShell命令.我应该使用robocopy吗?

powershell powershell-ise

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

gdb 退出而不是生成 shell

我正在尝试利用 SUID 程序。

该计划是:

#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>


#define e(); if(((unsigned int)ptr & 0xff000000)==0xca000000) { setresuid(geteuid(), geteuid(), geteuid()); execlp("/bin/sh", "sh", "-i", NULL); }

void print(unsigned char *buf, int len)
{
    int i;
    printf("[ ");
    for(i=0; i < len; i++) printf("%x ", buf[i]); 
    printf(" ]\n");
}

int main()
{
    unsigned char buf[512];
    unsigned char *ptr = buf + (sizeof(buf)/2);
    unsigned int x;

    while((x = getchar()) != EOF) {
            switch(x) {
                    case '\n': print(buf, sizeof(buf)); continue; break;
                    case …
Run Code Online (Sandbox Code Playgroud)

c bash shell gdb suid

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

Powershell-通过删除最后几个字符来重命名文件名

我想删除多个文件名的最后11个字符。例如,我有以下文件名:

ABCDE_2015_10_20
HIJKL_2015_10_20
MNOPQ_2015_10_20
RSTUV_2015_10_20
Run Code Online (Sandbox Code Playgroud)

想要重命名为

ABCDE
HIJKL
MNOPQ
RSTUV
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码:

Get-ChildItem 'E:\Thomson Reuters\Stage' | rename-item -newname { [string]($_.name).substring($_.name.length -14) } 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我要去哪里错了?

powershell

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

使用 bash 运行多个命令而不产生子shell

cd folder &>/dev/null ||( mkdir folder && cd folder ) && git clone https://github.com/user/my-project.git
Run Code Online (Sandbox Code Playgroud)

运行上述命令时,我遇到了问题(我认为),即()生成一个子shell并运行命令,然后在运行 git clone 时我不在预期的目录中。有没有办法运行这条线?我目前的解决方案是

cd folder &>/dev/null || mkdir folder && cd folder && git clone https://github.com/user/my-project.git
Run Code Online (Sandbox Code Playgroud)

问题是,cd folder即使目录存在,我也会运行两次

bash

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

使用 PowerShell 获取目录中的文件名

我有一个目录,其中包含一个名为 Bruce.txt 的文件。我需要将文件名复制到平面文件中。我尝试使用该copy-item命令,但它复制的是内容而不是名称。

是否有将 Bruce.txt(名称而不是内容)复制到平面文件的命令?所以在它完成后会有一个名为 process.txt 的文件,它的内容将是 Bruce.txt。我尝试使用

Copy-Item -Path "C:\Users\Bruce\deploy\*.txt" -Destination "C:\Users\Bruce\process.txt".

deploy 内部是一个名为 Bruce.txt 的文本文件,其内容为select count() from EMP_NR.

我需要 Bruce.txt 将名称复制到 process.txt 而不是 Select count() 等。

对于 Shell 脚本,我使用 ls 命令,它的效果很好,我可以为 Powershell 使用什么?

powershell

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

Shell脚本使用不清楚":"

我一直试图为我的项目改变旧的Shell脚本.我已经做过一些研究,但是:在shell脚本中使用但是对我来说还不太清楚.

#!/bin/bash

cd /home/dir1/dir2/dir3

FILES=../lib/*

CLASSPATH=.:../conf/

for f in $FILES
do
    CLASSPATH=$CLASSPATH:$f
done

echo $CLASSPATH
Run Code Online (Sandbox Code Playgroud)

他们在这里尝试做什么,是在两个目录中寻找相同的命名文件并将它们分配给CLASSPATH

unix bash shell for-loop

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

当最后一个进程处于尾部时未捕获 SIGTERM 信号

我有以下脚本,其中包含tail --pid=${somepid} -f ${mylogs}. 我想捕获SIGTERM该 PID 并对其进行一些正常关闭,因为该进程无法理解SIGTERM并痛苦地终止。

echo "pid: $$"

trap_with_arg() {
    func="$1" ; shift
    for sig ; do
        trap "$func $sig" "$sig"
    done
}

func_trap() {
    echo Trapped: $1
}

trap_with_arg func_trap INT TERM EXIT STOP
tail -f /dev/null
Run Code Online (Sandbox Code Playgroud)

当我kill -15 ${bashpid}从另一个终端使用时,除非使用 CTRL+C,否则不会打印捕获的信号。当最后一个命令不是一个进程,而是一个read内置的 shell 时,捕获的信号将立即打印。为什么会这样呢?如果我执行以下操作,它会起作用:

tail -f /dev/null &
wait $!
Run Code Online (Sandbox Code Playgroud)

linux bash signals

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

仅返回Get-ChildItem中的目录

以下查询在PowerShell中搜索文件的位置.有没有办法只返回目录而不是目录属性和文件名?

Get-ChildItem -Path C:\random\random -Filter nameofile -Recurse
Run Code Online (Sandbox Code Playgroud)

powershell

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

标签 统计

bash ×5

powershell ×5

shell ×3

linux ×2

c ×1

for-loop ×1

gdb ×1

powershell-ise ×1

signals ×1

suid ×1

unix ×1