मैं बैच स्क्रिप्टिंग में पूर्ण पथ से फ़ाइल नाम को कैसे विभाजित करूं?बैच में पूर्ण पथ से फ़ाइल नाम को कैसे विभाजित करें?
उत्तर
@echo off
Set filename=C:\Documents and Settings\All Users\Desktop\Dostips.cmd
For %%A in ("%filename%") do (
Set Folder=%%~dpA
Set Name=%%~nxA
)
echo.Folder is: %Folder%
echo.Name is: %Name%
लेकिन मैं इस के लिए ऋण नहीं ले सकते हैं; गूगल http://www.dostips.com/forum/viewtopic.php?f=3&t=409
धन्यवाद ! यह भी मेरे लिए काम किया। मैं एक फाइल से फ़ोल्डर्स की एक सूची में पढ़ रहा हूं और उन्हें स्वरूपित कर रहा हूं। मैंने इसका इस्तेमाल किया: "के लिए/एफ" टोकन = 1 delims = "%% ए में (list_of_files.txt) करें (" –
यह दिखाने के लिए अच्छा हो सकता है कि फ़ाइल नाम कैसे प्राप्त करें। (एक्सटेंशन के बिना।) – Vaccano
% ~ एनआई -% 1 को केवल फ़ाइल नाम में विस्तारित करता है <- teh DOS "for -help" आउटपुट से सीधे लिया जाता है। –
मुझे बैच फ़ाइलों के बारे में इतना कुछ पता नहीं है, लेकिन क्या आपके पास होम निर्देशिका से कॉपी की गई पूर्व-निर्मित बैच फ़ाइल नहीं हो सकती है जो आपके पास है जो फाइलों के नामों की एक सूची वापस कर देगी नाम?
यहां एक लिंक है जो मुझे लगता है कि पूर्व-निर्मित बैच फ़ाइल बनाने में सहायक हो सकता है।
@echo off
Set filename="C:\Documents and Settings\All Users\Desktop\Dostips.cmd"
call :expand %filename%
:expand
set filename=%~nx1
echo The name of the file is %filename%
set folder=%~dp1
echo It's path is %folder%
ऊपर पीट उदाहरण से जारी रखते हुए, cmd विंडो में सीधे यह करने के लिए, एक भी %
का उपयोग पर इस पाया, जैसे:
cd c:\test\folder A
for %X in (*)do echo %~nxX
(नोट desktop.ini की तरह है कि विशेष फ़ाइलों नहीं दिखाया जाएगा)
यह भी >>
का उपयोग कर एक फाइल करने के लिए उत्पादन रीडायरेक्ट करने के लिए संभव है:।
cd c:\test\folder A
for %X in (*)do echo %~nxX>>c:\test\output.txt
कोई वास्तविक उदाहरण के लिए, यह सोचते हैं आप फ़ोल्डर-बी (गैर पुनरावर्ती) फ़ोल्डर-ए से सभी फ़ाइलों लड़ी हैं:
cd c:\test\folder A for %X in (*)do robocopy . "c:\test\folder B" "%~nxX" /dcopy:dat /copyall /v>>c:\test\output.txt
और सभी फ़ोल्डरों के लिए (रिकर्सिवली):
किसी भी घटक (जैसे, file.ext) करने के लिए: (\ अस्थायी \ my.bat जैसे, ग)cd c:\test\folder A for /d %X in (*)do robocopy "%X" "C:\test\folder B\%X" /e /copyall /dcopy:dat /v>>c:\test\output2.txt
इसका उपयोग करते समय मैंने अभी खोज की है कि यदि आप इन तकनीकों का उपयोग रोबोकॉपी के साथ करते हैं तो आपको स्रोत निर्देशिका में अंतिम बैकस्लैश को हटाने के लिए भी याद रखना होगा। यह उपयोगी होगा यदि कोई उदाहरण था जो स्रोत के रूप में '% ~ dpX' का उपयोग करता है। – Annan
पूरी तरह से योग्य पथ नाम से एक फ़ाइल नाम पार्स।
कोड की एकल पंक्ति:
For %%A in ("C:\Folder1\Folder2\File.ext") do (echo %%~fA)
आप बाहर बदल सकते हैं "C: \ Folder1 \ Folder2 \ file.ext" किसी भी पूरा पथ और बदलाव के लिए "%% ~ एफए" किसी भी अन्य विकल्प के लिए आपको "के लिए" चलकर मिल जाएगा? कमांड प्रॉम्प्ट पर।
सविस्तार कोड
set "filename=C:\Folder1\Folder2\File.ext"
For %%A in ("%filename%") do (
echo full path: %%~fA
echo directory: %%~dA
echo path: %%~pA
echo file name only: %%~nA
echo extension only: %%~xA
echo expanded path with short names: %%~sA
echo attributes: %%~aA
echo date and time: %%~tA
echo size: %%~zA
echo drive + path: %%~dpA
echo name.ext: %%~nxA
echo full path + short name: %%~fsA)
स्टैंडअलोन बैच स्क्रिप्ट
सी के रूप में सहेजें: \ cmd \ ParseFn.cmd।
सी जोड़ें: \ cmd अपने पथ वातावरण चर को और आप सभी को पुन: प्रयोज्य बैच स्क्रिप्ट स्टोर करने के लिए इसका इस्तेमाल करते हैं।
@echo off
@echo ::___________________________________________________________________::
@echo :: ::
@echo :: ParseFn ::
@echo :: ::
@echo :: Chris Advena ::
@echo ::___________________________________________________________________::
@echo.
::
:: Process arguements
::
if "%~1%"=="/?" goto help
if "%~1%"=="" goto help
if "%~2%"=="/?" goto help
if "%~2%"=="" (
echo !!! Error: ParseFn requires two inputs. !!!
goto help)
set in=%~1%
set out=%~2%
:: echo "%in:~3,1%" "%in:~0,1%"
if "%in:~3,1%"=="" (
if "%in:~0,1%"=="/" (
set in=%~2%
set out=%~1%)
)
::
:: Parse filename
::
set "ret="
For %%A in ("%in%") do (
if "%out%"=="/f" (set ret=%%~fA)
if "%out%"=="/d" (set ret=%%~dA)
if "%out%"=="/p" (set ret=%%~pA)
if "%out%"=="/n" (set ret=%%~nA)
if "%out%"=="/x" (set ret=%%~xA)
if "%out%"=="/s" (set ret=%%~sA)
if "%out%"=="/a" (set ret=%%~aA)
if "%out%"=="/t" (set ret=%%~tA)
if "%out%"=="/z" (set ret=%%~zA)
if "%out%"=="/dp" (set ret=%%~dpA)
if "%out%"=="/nx" (set ret=%%~nxA)
if "%out%"=="/fs" (set ret=%%~fsA)
)
echo ParseFn result: %ret%
echo.
goto end
:help
@echo off
:: @echo ::___________________________________________________________________::
:: @echo :: ::
:: @echo :: ParseFn Help ::
:: @echo :: ::
:: @echo :: Chris Advena ::
:: @echo ::___________________________________________________________________::
@echo.
@echo ParseFn parses a fully qualified path name (e.g., c:\temp\my.bat)
@echo into the requested component, such as drive, path, filename,
@echo extenstion, etc.
@echo.
@echo Syntax: /switch filename
@echo where,
@echo filename is a fully qualified path name including drive,
@echo folder(s), file name, and extension
@echo.
@echo Select only one switch:
@echo /f - fully qualified path name
@echo /d - drive letter only
@echo /p - path only
@echo /n - file name only
@echo /x - extension only
@echo /s - expanded path contains short names only
@echo /a - attributes of file
@echo /t - date/time of file
@echo /z - size of file
@echo /dp - drive + path
@echo /nx - file name + extension
@echo /fs - full path + short name
@echo.
:end
:: @echo ::___________________________________________________________________::
:: @echo :: ::
:: @echo :: ParseFn finished ::
:: @echo ::___________________________________________________________________::
:: @echo.
- 1. पूर्ण फ़ाइल पथ से फ़ाइल नाम खोजें
- 2. पूर्ण पथ या फ़ाइल नाम
- 3. बैच में: पथ और फ़ाइल नाम
- 4. पूर्ण पथ से फ़ाइल नाम और एक्सटेंशन प्राप्त करें
- 5. पूर्ण फ़ाइल पथ से फ़ोल्डर का नाम प्राप्त करें
- 6. वर्तमान जावास्क्रिप्ट फ़ाइल नाम का पूर्ण पथ कैसे प्राप्त करें
- 7. अंतरिक्ष के साथ फ़ोल्डर नाम वाले बैच फ़ाइल में एक पूर्ण पथ कैसे लिखें?
- 8. पास केवल फ़ाइल नाम प्रिंट करें, पूर्ण पथ नहीं
- 9. dlopen को दिए गए सापेक्ष पथ से संबंधित पूर्ण लाइब्रेरी फ़ाइल नाम कैसे प्राप्त करें?
- 10. बैच फ़ाइल
- 11. पायथन में पूर्ण पथ फ़ाइल नाम का निर्माण,
- 12. फ़ाइल पथ नाम से फ़ाइल नाम निकालने के लिए कैसे?
- 13. एक्सकोड 4 फ़ाइल पूर्ण पथ
- 14. विंडोज सीएमडी - बैच फ़ाइल से पथ चर रीसेट करें?
- 15. जावास्क्रिप्ट में स्ट्रिंग पथ से फ़ाइल नाम प्राप्त करें?
- 16. रिक्त स्थान वाले पैरामीटर वाले किसी अन्य बैच फ़ाइल से बैच फ़ाइल को कैसे कॉल करें?
- 17. पथ से फ़ाइल नाम के बिना पूरा पथ प्राप्त करें जिसमें फ़ाइल नाम
- 18. पूरा फ़ाइल नाम युक्त पथ का नाम?
- 19. विंडोज बैच फ़ाइल में दो पंक्तियों में डबल कोटेड लाइन को कैसे विभाजित करें?
- 20. जीडीबी में फ़ाइल के पूर्ण पथ को कैसे देखें?
- 21. केवल कक्षा का नाम कैसे प्राप्त करें, पूर्ण पथ नहीं?
- 22. विम में फ़ाइल नाम के पूर्ण पथ पर एक प्रतीकात्मक लिंक का विस्तार कैसे करें?
- 23. वीबीस्क्रिप्ट - कंप्यूटर का नाम और/या पूर्ण नेटवर्क फ़ाइल पथ
- 24. एक्लिप्स प्लगइन में जावा स्रोत फ़ाइल का पूर्ण फ़ाइल पथ कैसे निर्धारित करें?
- 25. क्या फ़ाइल पथ और फ़ाइल नाम में
- 26. चींटी संपत्ति फ़ाइल में पूर्ण पथ
- 27. पथ नामों में ".." को बाश स्क्रिप्ट में पूर्ण नाम में कैसे परिवर्तित करें?
- 28. बैच फ़ाइल नियमित अभिव्यक्ति नाम
- 29. बैच फ़ाइल के बाद चल रही बैच फ़ाइल बैच फ़ाइल
- 30. सी # में पूर्ण पथ से भाग कैसे प्राप्त करें?
[एक चर से बैच निकालें पथ और फ़ाइल नाम] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/15567809/batch-extract-path-and-filename-from-a-variable) – Gab