我正在处理如下所示的命令-
$command="Path to Command / Bat file"
$delim = [RegEx]::Escape("|")
(Get-ChildItem -Path .\ -Force).Name | % { &"$command"
".\$_" "$delim" "..\<SomePath>\$_.html"}
在这种情况下,面对的是传递delim值,即Pipe。 Delim是我命令的第二个参数。
正在发生的是“ .. \\ $ _。html”正在作为可执行文件执行,但必须作为第三个参数传递。
答案 0 :(得分:0)
得到我问题的答案。我们需要按以下方式使用它而不是正则表达式。这是因为“ c”引擎不支持正则表达式分隔符。
s as well and completely omit
答案 1 :(得分:0)
只需 quote #include<stdio.h>
#include<string.h>
int main(void)
{
int i,n,count=0;
char f[30 + 1]; /* allocate one more element for storeing newline character */
char* lf;
printf("Enter the string. : ");
fgets(f, sizeof(f), stdin); /* change gets() to fgets() */
/* fgets() stores newline character while gets() doesn't, so remove it */
if ((lf = strchr(f, '\n')) != NULL) *lf = '\0';
n = strlen(f);
for(i=0;i<n;i++)
{
if(f[i]==f[n-i-1])
count=count+1;
}
if(count==n)
printf("\n Entered string is Palindrome");
else
printf("\n Entered string is NOT Palindrome");
}
字符即可将其传递给外部程序。需要使用引号告诉 PowerShell ,|
应该被按字面解释而不是管道运算符。
|
唯一需要做的工作就是目标程序本身将未加引号的 PS> 'a|b' | & findstr /L '|' # findstr.exe sees a literal | char.; & is optional here
a|b # Literal '|' was found in input string 'a|b'
[1] 视为具有特殊功能。的含义,尤其是在调用|
或批处理文件时:
cmd.exe
请注意嵌入双引号,这可确保PS> cmd /c echo '"|"'
"|"
将cmd.exe
视为自变量,因此不会将"|"
解释为其< / em>管道运算符。
(在这种情况下,内部|
命令的怪异之处是保留双引号。)
[1]即使在上面的 PowerShell 命令行中引用了echo
,在幕后PowerShell仍将其传递给未引用,只要参数没有嵌入的空格。