Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops I';我正在尝试创建一个寻呼系统。这不是完整的代码。获得;路径不';“不存在”;运行代码时_Loops_Powershell_Path - Fatal编程技术网

Loops I';我正在尝试创建一个寻呼系统。这不是完整的代码。获得;路径不';“不存在”;运行代码时

Loops I';我正在尝试创建一个寻呼系统。这不是完整的代码。获得;路径不';“不存在”;运行代码时,loops,powershell,path,Loops,Powershell,Path,我是powershell的新手,知道我为什么会出错吗 昨天\日期=(获取日期).AddDays(-1).ToString(“yyyMMdd”) 开始作业$jsb-名称Dum do{ Receive-Job -Name Dum | out-file C:\Users\path\pager.txt -append }while(1) 一些语法错误 第一:变量日期中缺少$。此外,您稍后将引用变量$dayed\u Date1,而不是$dayed\u Date。始终使用Set PSDebug-Stric

我是powershell的新手,知道我为什么会出错吗

昨天\日期=(获取日期).AddDays(-1).ToString(“yyyMMdd”)

开始作业$jsb-名称Dum

do{
Receive-Job -Name Dum | out-file C:\Users\path\pager.txt -append
}while(1)
一些语法错误

第一:变量日期中缺少
$
。此外,您稍后将引用变量
$dayed\u Date1
,而不是
$dayed\u Date
。始终使用
Set PSDebug-Strict
捕捉此类错误。正确的形式是

$Yesterday_Date = (get-date).AddDays(-1).ToString("yyyMMdd")
第二:单引号不计算字符串中的变量。双引号可以。考虑:

$file = 'C:\Users\d1\Documents\Batch\path\$Yesterday_Date\page.log'
$file
# Output
C:\Users\d1\Documents\Batch\path\$Yesterday_Date1page.log

$file2 = "C:\Users\d1\Documents\Batch\path\$Yesterday_Date1\page.log"
$file2 
# Output
C:\Users\d1\Documents\Batch\path\20130520\page.log
编辑:

为了解决评论中的问题,问题在于作业需要特殊的参数处理。使用
-Arg
将日期变量作为参数传递。这样,

$Yesterday_Date = (get-date).AddDays(-1).ToString("yyyMMdd") 
$jsb={
  param($date) 
  $file = "C:\Users\d1\Documents\Batch\path\$date\page.log" 
  write-host $file
}

Start-Job $jsb -name Dummy -arg $Yesterday_Date
Wait-Job -name Dummy
Receive-Job -Name Dummy
# Output
C:\Users\d1\Documents\Batch\path\20130521\page.log

修改后的代码:$dayed\u Date=(get Date).AddDays(-1).ToString(“yyyymmd”)$jsb={$file=“C:\Users\d1\Documents\Batch\path\$dayed\u Date1\page.log“get Content$file-Wait | ForEach Object-Begin{$counter=1$lines=@(get Content$file).Count}-Process{if($counter++-gt$lines){write host$\u}}}Start Job$jsb-name Dummy Receive Job-name Dummy | out file C:\Users\path\pager.txt-append但是,上面的代码引发了错误。错误:找不到路径“C:\Users\d1\Documents\Batch\path\$Date1\page.log”,因为它不存在。注意:Test path$file True在$jsb的脚本代码中无法识别变量$dayed\u Date。该路径是正确的,因为我尝试了Test path,它给出了True。现在怎么了???
$Yesterday_Date = (get-date).AddDays(-1).ToString("yyyMMdd") 
$jsb={
  param($date) 
  $file = "C:\Users\d1\Documents\Batch\path\$date\page.log" 
  write-host $file
}

Start-Job $jsb -name Dummy -arg $Yesterday_Date
Wait-Job -name Dummy
Receive-Job -Name Dummy
# Output
C:\Users\d1\Documents\Batch\path\20130521\page.log