0

我有一个非常奇怪的问题,一直在拔头发。

我有两个 PowerShell 脚本。让我们说主要和孩子。子脚本位于主文件夹中的文件夹中:

Mainfolder\Main_script    
MainFolder\ChildFolder\child_script.ps1 

主脚本从位置可以更改的位置运行。所以我在一开始就得到了脚本的位置

$ScriptDir = (Get-Location).path

我做了一些任务,包括复制哪些有效

copy-item -path $src -Destination $dst -force

到目前为止,一切都很棒。然后我打电话给我的孩子脚本

& "$scriptdir\childfolder\Child_script.ps1"

脚本运行,我看到其他任务正在执行。但是我在子文件夹中有一些文件需要复制。但是该副本不适用于 child_Script。我什至把

"Copying $src to $destination" | Out-file -append $logfile

我看到了Copying C:\test\copythis.txt to C:\temp

子脚本中的代码是这样的

$Scriptdir = (Get-Location).path
$src =  "$Scriptdir\copythis.txt"
$dst = "C:\temp"
copy-item -path $src -Destination $dst -force

如果我尝试在主脚本中复制相同的文件,一切正常。为什么复制项在子脚本中不起作用?我还应该提到,一切都使用系统帐户运行。所以没有权限问题。

任何帮助,将不胜感激。干杯,

4

1 回答 1

1

阅读文档

Get-Location
获取有关当前工作位置或位置堆栈的信息。

……

Get-Location cmdlet 获取表示当前目录的对象,与 pwd(打印工作目录)命令非常相似。

如果您想使用脚本所在的目录,请使用此 StackOverflow 问题的答案。

于 2016-04-06T23:33:17.117 回答