উইন্ডোজ কমান্ড প্রম্পট - স্থানান্তরিত ব্যবহারকারীর নথি ফোল্ডার পান


8

আমি একটি সাধারণ ব্যাচের স্ক্রিপ্ট লেখার চেষ্টা করছি যা %userprofile%\Documentsডিরেক্টরি থেকে কিছু ফাইল অনুলিপি করে । আমি আমার মেশিনে স্ক্রিপ্টটি পরীক্ষা করছি, তবে কিছু ব্যর্থতার পরে আমি বুঝতে পারি যে আমি আমার ব্যবহারকারীর ডেটা আলাদা পার্টিশনে স্থানান্তরিত করেছি । অতএব, %userprofile%\Documentsহয় খালি , এবং (সম্ভবত) কিছুই অনুলিপি করা হয়েছে।

আমি ইতিমধ্যে %homedrive%এবং অন্যান্য পরিবেশের ভেরিয়েবলগুলি চেষ্টা করেছি %homepath%তবে তারা এখনও মানটিকে নির্দেশ করেC:\...

ব্যবহারকারীর ডেটার জন্য ব্যবহৃত প্রকৃত ড্রাইভটি খুঁজে পাওয়ার কোনও উপায় আছে কি ?

আমি উইন্ডোজ 10 ব্যবহার করছি।

ধন্যবাদ!

সম্পাদনা

ʜιᴇcʜιᴇ007 দ্বারা চিহ্নিত হিসাবে, আমি ব্যবহারকারীর ডেটা অন্য পার্টিশনে স্থানান্তরিত করি নি, তবে আমি কেবলমাত্র "মূল" ফোল্ডারগুলি (ডকুমেন্টস, ভিডিওগুলি ...) অন্য পার্টিশনের সাথে সম্পর্কিত কিছু ফোল্ডারে স্থানান্তরিত করেছি: ডান ক্লিক করুন (উদাঃ) ) নথি, সম্পত্তি, পথ।

আমি কীভাবে কোনও দস্তাবেজ ফোল্ডারের পথটি সন্ধান করতে পারি যা এইভাবে স্থানান্তরিত হয়েছে?


2
আপনি যেখানেই রেখেছেন না কেন% ব্যবহারকারী প্রোফাইলে% এর সঠিক ফোল্ডার থাকা উচিত, যতক্ষণ আপনি প্রোফাইল ফোল্ডারগুলি সঠিকভাবে স্থানান্তরিত করেছেন ততক্ষণ এটি সঠিক হওয়া উচিত। সুতরাং আপনি অন্য পার্টিশনে ঠিক কীভাবে সরালেন?
ʜιᴇcʜιᴇ007

ঠিক আছে, আমি সততার সাথে মনে রাখিনি, তাই আমি কিছুটা ব্রাউজ করেছি এবং শেষ পর্যন্ত আমি কী করেছি তা খুঁজে পেলাম। আমি "প্রধান" ফোল্ডারগুলিতে (ডকুমেন্টস, ভিডিওগুলি ইত্যাদি) ডান-ক্লিক করেছি, বৈশিষ্ট্যগুলি নির্বাচিত করেছি, পথ ট্যাবটি নির্বাচন করেছি এবং পথ পরিবর্তন করেছি। (আমি উইন্ডোজের ইতালীয় সংস্করণটি ব্যবহার করছি এবং আমি আমার পর্দায় যে নামগুলি দেখি তা কেবল অনুবাদ করছি, কিছু শব্দ আলাদা হতে পারে)। সুতরাং আপনি ঠিক বলেছেন,% ব্যবহারকারী প্রোফাইল% তীব্রভাবে কোনও ভুল করছে না। তবে প্রশ্নটি এখনও: আমি কীভাবে "মূল" ডকুমেন্টস ফোল্ডারের সন্ধান করতে পারি?
আলেসান্দ্রো

তারপরে আমি মনে করি আপনি আপনার ডকুমেন্টস "লাইব্রেরি" কে আপনার ব্যবহারকারীর প্রোফাইলের ডকুমেন্টস ফোল্ডারে বিভ্রান্ত করছেন। দুটি ভিন্ন জিনিস ...
ʜιᴇcʜιᴇ007

ডকুমেন্টস ফোল্ডারের পথটি সন্ধান করার কোনও উপায় কি বিবেচনা করে এটিকে আবার স্থানান্তরিত করা হয়েছে?
আলেসান্দ্রো

উত্তর:


5

দুর্ভাগ্যক্রমে, কোনও সাধারণ পরিবেশের পরিবর্তনশীল নেই তবে আপনি যদি আপনার প্রোফাইলের সাথে সম্পর্কিত এটি কোনও ডিফল্ট পাথ থেকে পুনঃনির্দেশ করেন তবে আপনি একটি ব্যাচ স্ক্রিপ্ট থেকে চেক করতে পারেন। আপনি এখানে পরিবেশের ভেরিয়েবলগুলির সম্পূর্ণ তালিকা দেখতে পাবেন (কিছু অননুমোদিত সহ):

http://ss64.com/nt/syntax-variables.html

আরেকটি বিষয় মনে রাখবেন যে ফোল্ডার পুনঃনির্দেশ এমনকি এগুলি আপনাকে একটি নেটওয়ার্ক শেয়ারে স্থানান্তর করতে দেয়। আপনি সমস্ত ব্যবহার করতে পারেন এমন কোনও "ড্রাইভ" থাকতে হবে না; এটি কেবল একটি ইউএনসি পথ হতে পারে।

সুসংবাদটি হ'ল তথ্য যা আপনি চান নিচের অবস্থানে রেজিস্ট্রি উপলব্ধ:

HKEY_CURRENT_USER \ সফ্টওয়্যার \ মাইক্রোসফ্ট, উইন্ডোজ \ কারেন্ট ভার্সন \ এক্সপ্লোরার \ ব্যবহারকারী শেল ফোল্ডারগুলি \ ব্যক্তিগত

ফোল্ডারগুলির একটি পুরো সেট রয়েছে যা আপনি সেই কীটিতে ঘুরতে পারেন User Shell Foldersতবে উইন্ডোজ ব্যাচ ব্যবহার করে আমার দস্তাবেজ ফোল্ডারটি এখানে পড়ার মতো দেখাচ্ছে:

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal

আমার মেশিনে এটি নিম্নলিখিত আউটপুট উত্পাদন করে যা আপনার প্রয়োজন এবং উইন্ডোজ ব্যাচের স্ক্রিপ্টগুলির সাথে আপনি কতটা ভাল তার উপর নির্ভর করে আপনার পক্ষে কম বেশি কার্যকর হতে পারে:

HKEY_CURRENT_USER \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ উইন্ডোজ \ কারেন্ট ভার্সন \ এক্সপ্লোরার \ ব্যবহারকারী শেল ফোল্ডার
    ব্যক্তিগত REG_EXPAND_SZ সি: \ ব্যবহারকারী \ জোয়েল \ নথি

আপনি vbscript চেষ্টা করে দেখতে পারেন:

Set wshshell = CreateObject("WScript.Shell")
Documents = wshShell.SpecialFolders("MyDocuments")

বা পাওয়ারশেল:

[Environment]::GetFolderPath('MyDocuments')

এটি শেষ পর্যন্ত উইন্ডোজে বাশের মাধ্যমেও উপলব্ধ হতে পারে (সত্যিই!) তবে এটি কীভাবে এখনও করা যায় তা আমি দেখিনি যা ধারাবাহিকভাবে নির্ভুল হবে।


3

ধরে নিচ্ছি আপনার কম্পিউটারে বর্তমান ফোল্ডার বা কিছু জ্ঞাত-বিদ্যমান অবস্থানে রাইটিং অ্যাক্সেস রয়েছে ... আপনি পাওয়ারশেল ব্যবহার করতে পারেন!

Environment.GetFolderPathফাংশনের ফাইল সিস্টেম পাথ পেতে পারেন সুপরিচিত অবস্থানে ডকুমেন্টস ফোল্ডারের সহ। এই পাওয়ারশেল কমান্ড ডকুমেন্টস পাথটি মুদ্রণ করে:

[Environment]::GetFolderPath('MyDocuments')

এটি Out-Filecmdlet সহ কোনও ফাইলে লেখা যেতে পারে । পুনঃনির্দেশ অপারেটরটি >এখানে সত্যই কাজ করে না কারণ এটি একটি বিওএম সহ একটি ইউনিকোড পাঠ্য ফাইল তৈরি করে, যা ব্যাচ প্রসেসরের সাথে কাজ করা কঠিন।

[Environment]::GetFolderPath('MyDocuments') | Out-File 'docspath.tmp' -Encoding ascii

এই ফাইলটি একটি ব্যাচের ভেরিয়েবলের সাথে পড়তে পারে set /p। সব কিছু একসাথে রেখে আমরা এই ব্যাচের স্ক্রিপ্টের টুকরো পাই:

powershell -Command "[Environment]::GetFolderPath('MyDocuments') | Out-File 'docspath.tmp' -Encoding ascii"
set /p DOCSPATH=< docspath.tmp
del docspath.tmp

ব্যবহারকারীর নথি ফোল্ডারে যাওয়ার পথটি এখন হিসাবে প্রকাশ করা যেতে পারে %DOCSPATH%


1

আমার কাছে নির্ভরযোগ্য উত্তর আছে। পাওয়ারশেলের সংমিশ্রণ যা ডসের জবাব দেয়

for /f "delims=" %%a in ('powershell.exe -command "& {write-host $([Environment]::GetFolderPath('MyDocuments'))}"') do Set "$Value=%%a"
Echo Value received from Powershell : %$Value%

আমি জানতাম না যে আপনি $একটি সিএমডি ভেরিয়েবল নামে ব্যবহার করতে পারেন । তবে আপনি জানেন যে এটি একটি অস্বাভাবিক ব্যবহার, তাই না?
স্কট

0

ভাল এটা খুব সহজ :)

ডেস্কটপ ফোল্ডারের অবস্থান এখানে তালিকাভুক্ত করা হয়েছে:

\ HKEY_CURRENT_USER \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ উইন্ডোজ \ কারেন্ট ভার্সন \ এক্সপ্লোরার \ শেল ফোল্ডার

এমনকি পাওয়ারশেলে এমনকি সরল

$ ডেস্কটপপথ = [পরিবেশ] :: গেটফোল্ডারপাথ ("ডেস্কটপ")

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.