Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एस्केपिंग कमांड पैरामीटर xp_cmdshell को dtexec में पास किया गया

संक्षेप में, CMD /S /C " . डालें शुरुआत में, और " अतं मै। बीच में आप जितने चाहें उतने उद्धरण रख सकते हैं।

यहां बताया गया है कि आप इसे कैसे करते हैं:

declare @cmd varchar(8000)
-- Note you can use CMD builtins and output redirection etc with this technique, 
-- as we are going to pass the whole thing to CMD to execute
set @cmd = 'echo "Test" > "c:\my log directory\logfile.txt" 2> "c:\my other directory\err.log" '


declare @retVal int
declare @output table(
    ix int identity primary key,
    txt varchar(max)
)


-- Magic goes here:
set @cmd = 'CMD /S /C " ' + @cmd + ' " '

insert into @output(txt)
exec @retVal = xp_cmdshell @cmd
insert @output(txt) select '(Exit Code: ' + cast(@retVal as varchar(10))+')'

select * from @output


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संग्रहीत कार्यविधि में SET XACT_ABORT ON का उपयोग करने का क्या लाभ है?

  2. मैं मैन्युअल रूप से पहचान कैसे सम्मिलित कर सकता हूं?

  3. SQL सर्वर प्रबंधन स्टूडियो में तालिका में मानों को त्वरित रूप से कैसे संपादित करें?

  4. प्रबंधन स्टूडियो में तालिकाओं की सूची देखने के लिए अनुमति आवश्यक है

  5. SSRS 2014 रिपोर्ट परिनियोजित समस्या