2016-01-08 3 views
0

Что я пытаюсь сделать, так это взять файл журнала bcp (папку журнала) и перенести его в другой каталог с текущим временем (папка с историей). Тем не менее, каждый раз, когда я выполнить этот скрипт на Perl, он заявляет: «Нет такого файла или каталога в строке 18»Set File Paths - Perl Script

Ниже мой код:

## SET FILE PATHS 
my $myBCPDump = "//Server-A/X:/Main Folder/Log/bcpLog.txt"; 
my $myBCPLog = "//Server-A/X:/Main Folder/History/bcpLog" . $myDate . ".txt"; 

my $isJunk = "rows successfully|rows sent to SQL|packet size|Starting copy|^\n|Clock Time"; 

open (LOGFILE, ">$myBCPLog") or die $!; ##Line 18 

close (LOGFILE); 

Я знаю, что он не может найти файл или каталог потому что ## SET FILE PATHS не выполняется должным образом, и я не знаю, почему.

+0

Какой ОС вы используете? '// Server-A/X:/...' не является допустимым путем в Windows, и я никогда раньше не видел ничего подобного в unix. – ikegami

+0

Что вы имеете в виду, это не допустимый путь? – AznDevil92

+3

':' не допускается, кроме как после буквы диска ('C: ...'). Но у вас есть UNC-путь ('\\ server \ share \ ...'), и у них нет компонента привода. Возможно, вы имели в виду '// Server-A/X $/...'? Не забудьте избежать '$' – ikegami

ответ

2

//Server-A/X:/... не является допустимым путем в Windows. Двоеточие (:) не допускается по пути, за исключением буквы диска (C:...). Но у вас есть путь UNC (\\server\share\... aka //server/share/...), и у них нет компонента привода. Возможно, вы имели в виду //Server-A/X$/...? Если да, то

"//Server-A/X:/..." 

должен быть изменен на любой из

"//Server-A/X\$/..." 

и

'//Server-A/X$/...'