@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
File batch della finestra - Rimozione della directory da un percorso del file
-
29-07-2022 - |
Domanda
Sto cercando di cercare nella mia base di codice per tutti jscript Directory e quindi ottenere un elenco di file relativi all'interno di quelle directory usando il seguente script batch ...
@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!
)
)
Funziona tutto come previsto fino a quando non arriva a ...
SET "relativePath=!relativePath:%currentDir%=!"
Posso capire in quale formato ho bisogno per scrivere questo per girare ...
c:\dir\jscript\dev\file.js
in...
file.js
Per favore aiuto!
Informazioni aggiuntive
La configurazione della directory è la seguente
dir
jscripts
dev
file.js
file2.js
live
file.js
file2.js
dir2
jscripts
dev
file.js
file2.js
live
file.js
file2.js
Voglio trovare tutto jscripts Directory, CD in essi, ottieni un elenco di tutti i file JS relativo al dev directory
Soluzione 2
Altri suggerimenti
Per estrarre il nome del file e l'estensione da una variabile contenente un percorso completo %~nx0
come in
set G=c:\dir\jscript\file.js
echo %~nxG
Citando quanto segue da Questa risposta a una domanda simile
%~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
Questa è una pasta di copia dal "per /?" comando sul prompt. Spero che sia d'aiuto.
Imparentato
Top 10 dos batch suggerimenti (sì, batch dos ...) Spettacoli BatchParams.bat (Link to Source come Gist):
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