2012-01-05 15 views
9

Ho bisogno di copiare un file x.dtsx dalla posizione a alla posizione b.comando dos per sperare il nome del file e l'estensione in variabili

Se x.dtsx esiste già in B, allora ho bisogno di rinominare x.dtsx a x_Standby.dtsx Poi, dopo la ridenominazione copia x.dtsx ab

mio codice attuale è simile al seguente:

if exists %1 rename %1 %(should be 1_standy.extension) 
xcopy %1 %2 
+0

e lo ripeto: DOS non è CMD, e '[elaborazione batch] neq [lotto = File]' – SteveFest

risposta

34

Se si utilizzano le estensioni del processore dei comandi (che è di default su Windows 2000 e versioni successive) quindi è possibile utilizzare la seguente sintassi opzionale:

%~1   - expands %1 removing any surrounding quotes (") 
%~f1  - expands %1 to a fully qualified path name 
%~d1  - expands %1 to a drive letter only 
%~p1  - expands %1 to a path only 
%~n1  - expands %1 to a file name only 
%~x1  - expands %1 to a file extension only 
%~s1  - expanded path contains short names only 
%~a1  - expands %1 to file attributes 
%~t1  - expands %1 to date/time of file 
%~z1  - expands %1 to size of file 

i modificatori possono essere combinati per ottenere compo risultati und:

%~dp1  - expands %1 to a drive letter and path only 
%~nx1  - expands %1 to a file name and extension only 

Quindi il vostro comando sarebbe simile a questa:

if exist %2\%~nx1 ren %2\%~nx1 %~n1_standby%~x1 
+1

Grazie sei così tanto Neil Fantastico –

Problemi correlati