Estensione di file .xml specifica in movimento DOS [duplicato]


2

Voglio spostare i miei file .xml da una directory (chiamiamola "da") a un'altra (chiameremo "a") ma usando i caratteri jolly si spostano i file indesiderati come .xml_. Come posso spostarli specificando l'estensione ".xml"?


Risposte:


2

Come discute il link di @ Scott, *.xmlcorrisponde *.xml_, perché il nome 8.3 termina in .XML(usa dir /xper mostrare).

Fortunatamente, il comando ForFiles non è soggetto a questa eccentricità, quindi puoi usare:

forfiles /m *.xml /c "cmd /c move @path TargetDir\"

Appunti:

  • Poiché moveè un comando interno, cmdè necessario un separato per richiamarlo (ciò non sarebbe necessario con un comando esterno (come xcopy), come in forfiles /m *.xml /c "xcopy @path TargetDir\").
  • C'è /sun'opzione, che ricercherà attraverso le sottodirectory, ma non ricercherà la directory di destinazione: se si desidera che l'albero di origine sia abbinato alla destinazione, sarà necessario analizzare il percorso di origine per trovare la directory di destinazione corretta, che probabilmente è meglio fare in un file batch:

    forfiles /m *.xml /c "cmd /c call mover.cmd @relpath TargetDir\"

  • Se ne hai bisogno mover.cmd, lascio a scriverlo come un esercizio di scripting per te.

  • Non ho testato cosa succede quando ci sono spazi nei nomi di file o directory, ma mi aspetto complicazioni.

Fantastico, funziona come un incantesimo in un file batch, grazie mille!
A Box Of Cheese,

0

Dovresti essere in grado di spostare solo i file .xml usando * .xml come nome del file. Ciò comporterebbe il seguente comando:
move C:\source\folder\*.xml C:\destination\folder\


Grazie, ma di nuovo il problema sono i caratteri jolly (* in questo caso). Ho bisogno di qualcosa che filtrerebbe tutto tranne esattamente ".xml" perché con questo entrano i file .xml_
A Box Of Cheese

È strano, ho creato una cartella di origine e destinazione. Nella sorgente della cartella avevo un file test.xml e un file test.xml_ e il comando che ho postato ha spostato solo il file .xml e lasciato solo il file .xml_. Tuttavia nel tuo caso potrebbero essere applicati superuser.com/questions/825615/… menzionati da Scott. Il mio test è stato eseguito su Windows 10.
User025

Vedo, sto usando Windows 7 in modo che possa essere la causa del problema, può essere di qualche utilità qui in uno script che trova solo i nomi di file che terminano esattamente con .xml e li spostano?
A Box Of Cheese,

Non sono sicuro di come potresti riuscirci con findstr, tuttavia esiste un cmdlet "Move-Item" di Powershell, quindi se Powershell è un'opzione che potrebbe funzionare. Il comando sarebbe `Move-Item -Path C: \ source \ folder \ *. Xml -Destination C: \ destination \ folder \`
Utente025
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.