Передача параметра из командного файла в Powershell? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь создать форму, которая передает значения переменных для 1.CustomerID и 2.EmailReceiver в командный файл. Затем я хочу, чтобы идентификатор клиента отправлялся в подпроцедуру и создавал отчеты (это работает), а значение EmailReceiver отправлялось в файл PowerShell. Однако, когда я пытаюсь передать значение% EmailReceiver% в файл Powershell, оно, похоже, не работает. У меня есть следующий код.

Код пакетного файла:

<!-- :
for /f "tokens=1 delims=," %%a in ('mshta.exe "%~f0"') do (
    set "CustomerID=%%~a"    
)
Set EmailReceiver=%EmailReceiver%
sqlcmd -S LAPTOP\MSSQLSERVER02 -d Customer -E -Q " EXEC GetCustomerID '%CustomerId%' " -s "," -o "C:\Users\Iteration5\SearchResults\%CustomerID%.csv"
sqlcmd -S LAPTOP\MSSQLSERVER02 -d AuditLog -E -Q " EXEC dbo.AuditLogCustomerIDTest4'%CustomerId%','%SearchDate%', '%UserName%','%SearchTime%' "
powershell.exe -executionpolicy bypass -file C:\Users\Working.ps1 %EmailReceiver%

и поля ввода, относящиеся к CustomerID и EmailReceiver:

<script language='javascript' >
        function pipeText() {
            var CustomerId=document.getElementById('CustomerId').value;
            var EmailReceiver=document.getElementById('EmailReceiver').value;


            var Batch = new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
            close(Batch.WriteLine('"'+CustomerId+'","'+EmailReceiver+'"'));
      }
    </script>


 <div style="font-family:Georgia; color:red; font-size:20px; display:flex; flex-direction: row; justify-content: center; text-align:center;"> 
   <label style="font-size:30px" for="Student">Customer ID:</label>
   <input title="This is the CustomerId" type='text' name='CustomerId' maxlength="20" size='25' required></input><br>
 </div>

 <div style="font-family:Georgia; color:red; font-size:20px; display:flex; flex-direction: row; justify-content: center; text-align:center;"> 
   <label style="font-size:30px" for="Student">Send Email To:</label>
   <input title="This is the CustomerId" type='text' name='EmailReceiver' maxlength="40" size='25' required></input><br>
 </div>

<br>
 <div style="justify-content: center; text-align:center;">   
    <button onclick='pipeText()'" style="background-color: #FFFFFF; color:red; border: 1px solid black;">Submit</button>
 </div>

Код Powershell i затем я должен передать значение переменной EmailReceiver:

echo $EmailReceiver
$MyEmail = "blondedavid@gmail.com"
$SMTP= "smtp.gmail.com"
$To = "$EmailReceiver"
$Subject = "SQL Requests"
$Body = "Something relating to SQL"
$Creds = (Get-Credential -Credential "$MyEmail")
$attachment = "C:\Users\David\Documents\4thYear\SQLAutomationCollege\Iteration5\SearchResults\37.csv"

Start-Sleep 2

Send-MailMessage -To $to -From $MyEmail -Subject $Subject -Body $Body -SmtpServer $SMTP -Credential $Creds -UseSsl -Port 587 -attachment $attachment 
pause

Извините, я все еще новичок в этом, но был бы признателен, если бы кто-нибудь мог сказать мне, почему я получаю сообщение об ошибке, сообщающее, что значение -To нельзя оставлять пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...