আপনি স্ক্রিপ্টটি চালাচ্ছেন না বলে এসএসএমএসে আপেক্ষিক পথ পাওয়াই যে সোজা-ফরোয়ার্ড নয়; এসএসএমএস স্ক্রিপ্টটি মেমরিতে লোড করেছে এবং এটি পাঠ্য সম্পাদন করছে। সুতরাং বর্তমান ডিরেক্টরি / ফোল্ডার হ'ল ডিফল্ট প্রক্রিয়া ফোল্ডার। আপনি এসএসএমএসে এসকিউএলসিএমডি মোডে নিম্নলিখিতটি চালিয়ে দেখতে পারেন:
!! PWD
যাইহোক, আমি এটি করার জন্য একটি কিন্ডা-বাছা উপায় খুঁজে পেয়েছি। আমি স্বীকার করি যে এটি করার জন্য এটি সবচেয়ে সর্বোত্তম আদর্শ উপায় নয় তবে বর্তমানে এটি সত্যিকারের আপেক্ষিক পাথ পাওয়ার একমাত্র উপায় বলে মনে হচ্ছে (ভেরিয়েবলের মধ্যে পাথ নির্ধারণ করা সত্যই প্রতি সেঞ্চে "আপেক্ষিক" নয় )।
সুতরাং আপনি যা করতে পারেন তা হ'ল:
- Foo.sql সন্ধান করার জন্য একটি ডস কমান্ড কার্যকর করুন এবং এসএসএমএস থেকে যে ফোল্ডারে আপনি এসএসএমএস থেকে পেতে পারেন কোনও পাঠ্য ফাইলে সেই ফাইলটির পাথ সংরক্ষণ করুন, তা হয় এটি হার্ড-কোডেড পাথ বা কারণ এটি পরিবেশগত ভেরিয়েবল ব্যবহার করে যা উপলভ্য এসএসএমএসে ডস কমান্ড এবং এসকিউএলসিএমডি মোড উভয়ই
- সেই ফাইলটিতে পাথ সংরক্ষণ করার সময়, এটি একটি এসকিউএলসিএমডি মোড কমান্ড হিসাবে সংরক্ষণ করুন যা সেই পথে একটি ভেরিয়েবল সেট করে
- এসএসএমএস ব্যবহার করে সেই পাঠ্য ফাইলটি আমদানি করুন
:r
এবং এটি সেই পরিবর্তনশীলটিকে পছন্দসই পথে সেট করবে
!! CD C:\ & FOR /F %B IN ('DIR /B /A -HS /S foo.sql') DO ECHO :setvar mypath "%~dpB" > %TEMP%\relative_path.txt
:r $(TEMP)\relative_path.txt
:r $(mypath)\bar.sql
মন্তব্য:
উপরের পদ্ধতিটি সিস্টেমে কেবলমাত্র 1 টি ফাইলের নাম রাখা হয়েছে foo.sql । যদি একাধিক ফাইলে সেই নামটি থাকে, তবে শেষটি পাওয়া যাবে যা সম্পর্কিত_পথ.টিএসটি ফাইলের মধ্যে সেট সেট হবে set
এরকম CD C:\
রুট এ শুরু হবে সি: ড্রাইভ। এটি সম্ভবত সবচেয়ে কার্যকর জায়গা নয়। সি: \ ব্যবহারকারীগণ {আপনার লোগিন \ u নথিগুলি \ ভিজ্যুয়াল স্টুডিও 2013 as প্রকল্পগুলির মতো কোনও অঞ্চলে আপনার যদি সাধারণত আপনার এসকিউএল ফাইল থাকে তবে কেবল CD
গন্তব্যের নিকটে যাওয়ার জন্য আদেশটি পরিবর্তন করুন যেমন:
!! CD C:\Users\{YourLogin}\Documents\Visual Studio 2013 & FOR ...