powershell字符串中的变量值为null

powershell字符串中的变量值为null,powershell,Powershell,我正在PowerShell中使用以下代码。不幸的是,它没有拾取$Startinghash和$lastHash值。若我直接传递值,那个么代码运行良好 不工作:- $StartingHash = "f116bcce5cc0701cb0b5a673bc4ce9f723050f04" $LastHash = "2870d215c7201e7cf65c71d4d0e732078b3bda31" git log --pretty=format: --name-only $StartingHash..$La

我正在PowerShell中使用以下代码。不幸的是,它没有拾取
$Startinghash
$lastHash
值。若我直接传递值,那个么代码运行良好

不工作:-

$StartingHash = "f116bcce5cc0701cb0b5a673bc4ce9f723050f04"
$LastHash = "2870d215c7201e7cf65c71d4d0e732078b3bda31"

git log --pretty=format: --name-only $StartingHash..$LastHash | sort | uniq | grep -i '".sql"' > C:\Ashish\data\sqlRB.txt 
git log --pretty=format: --name-only f116bcce5cc0701cb0b5a673bc4ce9f723050f04..2870d215c7201e7cf65c71d4d0e732078b3bda31 | sort | uniq | grep -i '".sql"' > C:\Ashish\data\sqlRB.txt
工作:-

$StartingHash = "f116bcce5cc0701cb0b5a673bc4ce9f723050f04"
$LastHash = "2870d215c7201e7cf65c71d4d0e732078b3bda31"

git log --pretty=format: --name-only $StartingHash..$LastHash | sort | uniq | grep -i '".sql"' > C:\Ashish\data\sqlRB.txt 
git log --pretty=format: --name-only f116bcce5cc0701cb0b5a673bc4ce9f723050f04..2870d215c7201e7cf65c71d4d0e732078b3bda31 | sort | uniq | grep -i '".sql"' > C:\Ashish\data\sqlRB.txt
我认为变量值没有设置

Write-Host git log --pretty=format: --name-only $StartingHash..$LastHash | sort | uniq | grep -i '".sql"' > C:\Ashish\data\sqlRB.txt
输出:-

git log --pretty=format:--name-only f116bcce5cc0701cb0b5a673bc4ce9f723050f04..2870d215c7201e7cf65c71d4d0e732078b3bda31

我不能为您的Git代码说话,但正如所指出的,在您的
--仅名称
字符串中插入了空格。您可以在键入以下内容时看到:

Write-Output  $StartingHash..$LastHash


您可以做的是将这些值括在引号中,以便PowerShell将其视为单个字符串,而不使用任何空格或意外格式

git log --pretty=format: --name-only "$StartingHash..$LastHash" | ....

如果绝对不解释为范围运算符。尝试以下操作:
write$StartingHash..$LastHash
。它不会产生任何错误。@PetSerAl-Crap。这就是你评论的意思。我的回答正确,但我的假设正确吗wrong@PetSerAL它给出了输出f116bcce5cc0701cb0b5a673bc4ce9f723050f04..2870d215c7201e7cf65c71d4d0e732078b3bda31,它是correct@matt当我说它不工作时,这意味着文件C:\Ashish\data\sqlRB.txt是空的。那么,这个文件的输出是什么呢
git log--pretty=format:--name only$StartingHash..$LastHash
git log--pretty=format:--name only“$StartingHash..$LastHash”
@Matt
git log--pretty=format:--name only”$StartingHash..$LastHash“
在我测试它时起作用。AFAICS您更新的答案是正确的。投票取消删除。@AnsgarWiechers这是否意味着需要引用?可能是进一步过滤和重定向的问题吗?@Matt是的。没有引号:没有输出。带引号:与文本哈希相同的输出。