@echo off
setlocal enableextensions enabledelayedexpansion
rem Where to start
pushd "c:\wherever\global2_root\"
rem Search .....\dev directories
for /f "tokens=*" %%d in ('dir /ad /s /b ^| findstr /e "\\dev"') do (
rem change to that directory
pushd "%%~fd"
echo Now in !cd!
rem process files inside directory
for %%f in (*.js) do (
echo %%f
)
rem return to previous directory
popd
)
rem return to initial directory
popd
rem cleanup
endlocal
ملف دفعة نافذة - إزالة الدليل من مسار الملف
-
29-07-2022 - |
سؤال
أحاول البحث في قاعدة الرموز الخاصة بي للجميع JScript الدلائل ثم احصل على قائمة بالملفات النسبية داخل تلك الدلائل باستخدام البرنامج النصي الدُفعات التالي ...
@echo off
setlocal enableextensions enabledelayedexpansion
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S jscripts') DO (
CD %%G
CD dev
SET "currentDir=!cd!"
IF NOT "!currentDir:~-1!"=="\" SET "currentDir=!currentDir!\"
FOR /r %%F IN (*.js) DO (
SET "relativePath=%%F"
SET "relativePath=!relativePath:%currentDir%=!"
ECHO !relativePath!
)
)
كل شيء يعمل كما هو متوقع حتى يصل إلى ...
SET "relativePath=!relativePath:%currentDir%=!"
يمكنني معرفة التنسيق الذي أحتاجه لكتابة هذا لتحويل ...
c:\dir\jscript\dev\file.js
داخل...
file.js
الرجاء المساعدة!
معلومات إضافية
إعداد الدليل كما يلي
dir
jscripts
dev
file.js
file2.js
live
file.js
file2.js
dir2
jscripts
dev
file.js
file2.js
live
file.js
file2.js
أريد أن أجد كل شيء JScripts الدلائل ، قرص مضغوط فيها ، احصل على قائمة بجميع ملفات JS بالنسبة إلى Dev الدليل
المحلول 2
نصائح أخرى
لاستخراج اسم الملف والتمديد من متغير يحتوي على استخدام مسار كامل %~nx0
كما في
set G=c:\dir\jscript\file.js
echo %~nxG
نقلا عن ما يلي من هذه الإجابة على سؤال مماثل
%~I - expands %I removing any surrounding quotes (") %~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only %~nI - expands %I to a file name only %~xI - expands %I to a file extension only %~sI - expanded path contains short names only %~aI - expands %I to file attributes of file %~tI - expands %I to date/time of file %~zI - expands %I to size of file The modifiers can be combined to get compound results: %~dpI - expands %I to a drive letter and path only %~nxI - expands %I to a file name and extension only %~fsI - expands %I to a full path name with short names only
هذه نسخة معجون من "لـ /؟" الأمر على الموجه. أتمنى أن يساعد ذلك.
متعلق ب
أعلى 10 نصائح الدُفعات DOS (نعم ، دفعة DOS ...) عروض Batchparams.bat (رابط إلى المصدر كموهر):
C:\Temp>batchparams.bat c:\windows\notepad.exe %~1 = c:\windows\notepad.exe %~f1 = c:\WINDOWS\NOTEPAD.EXE %~d1 = c: %~p1 = \WINDOWS\ %~n1 = NOTEPAD %~x1 = .EXE %~s1 = c:\WINDOWS\NOTEPAD.EXE %~a1 = --a------ %~t1 = 08/25/2005 01:50 AM %~z1 = 17920 %~$PATHATH:1 = %~dp1 = c:\WINDOWS\ %~nx1 = NOTEPAD.EXE %~dp$PATH:1 = c:\WINDOWS\ %~ftza1 = --a------ 08/25/2005 01:50 AM 17920 c:\WINDOWS\NOTEPAD.EXE
لا تنتمي إلى StackOverflow