खोज…


अस्थायी फ़ाइलों के साथ पॉवर्सशेल चलाएँ

इसका उल्लेख अन्य संकर विषयों में बार-बार किया गया है। पुराने स्कूल, लेकिन पॉवर्स को चलाने की आसान विधि है:

  • echo Powershell स्क्रिप्ट को एक अस्थायी स्क्रिप्ट में सम्मिलित करता है
  • अस्थायी स्क्रिप्ट निष्पादित करें
  • वैकल्पिक रूप से अस्थायी स्क्रिप्ट को हटा दें

यह एक नमूना लिपि है।

@echo off
echo powershell-command>Temp.ps1
echo another line>>Temp.ps1
    rem echo the script into a temporary file

powershell -File Temp.ps1
    rem execute the temporary script

del Temp.ps1
    rem Optionally remove the temporary script

विधि ऊपर की टन की आवश्यकता है echo , बयान करता है, तो एक लंबे स्क्रिप्ट की आवश्यकता है यहाँ एक बेहतर तरीका @Aacini से करने का सुझाव है

@echo off
setlocal

    rem Get the number of the "<resource>" line
for /F "delims=:" %%a in ('findstr /N "<resource>" "%~F0"') do set "start=%%a"

    rem Skip such number of lines and show the rest of this file
(for /F "usebackq skip=%start% delims=" %%a in ("%~F0") do echo %%a) > Temp.ps1

powershell -File Temp.ps1
del /f /s /q Temp.ps1

goto :EOF

<resource>
PS
Powershell script

1-लाइन पॉवर्सशेल कमांड निष्पादित करने के लिए पॉवर्सहेल कमांड का उपयोग करें

POWERSHELL कमांड का उपयोग करके, हम किसी भी अस्थायी फ़ाइल के बिना, बैच स्क्रिप्ट से सीधे 1-लाइन कमांड निष्पादित कर सकते हैं।


यहाँ वाक्य विन्यास है।

powershell.exe -Command <yourPowershellCommandHere>

आप वास्तविक परिणाम को बेहतर बनाने के लिए -Nologo जैसे अन्य झंडे भी शामिल करना चाह सकते हैं।

अस्थायी फ़ाइलें बिना टावर्स / बैच हाइब्रिड

यह स्टैकओवरफ़्लो के उपयोगकर्ता रोज़ो द्वारा प्रस्तावित दृष्टिकोण है जो कमांड लाइन के तर्कों को भी संभाल सकता है:

<# : batch portion
@echo off & setlocal

(for %%I in ("%~f0";%*) do @echo(%%~I) | ^
powershell -noprofile "$argv = $input | ?{$_}; iex (${%~f0} | out-string)"

goto :EOF
: end batch / begin powershell #>

"Result:"
$argv | %{ "`$argv[{0}]: $_" -f $i++ }

इस तरह कहा जाता है:

psbatch.bat arg1 "यह arg2 है" arg3

उत्पादन करेंगे:

Result:
$argv[0]: C:\Users\rojo\Desktop\test.bat
$argv[1]: arg1
$argv[2]: This is arg2
$argv[3]: arg3


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow