|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
|
Aiuto comando DOS sotto Windows 7!!!!!
Avrei bisogno di prendere alcuni files radicati in delle sottodirectory e spostarli in un'altra directory!
Questi files sono presenti nelle directory: D:\dvd\dupli 1\file.vob D:\dvd\dupli 2\file.vob D:\dvd\dupli 3\file.vob D:\dvd\dupli 4\file.vob D:\dvd\dupli 5\file.vob D:\dvd\dupli 6\file.vob ..... e così via Avevo pensato ad un qualcosa del genere.... dir d:\dvd\dupli*\*.vob | mv pathDirectoryDestinazione Ma il comando non è valido perchè credo che dos non sia in grado di espandere le wildcards anche nel pathname delle directory...... Mi aiutate????? ![]() ![]() Vorrei farlo con dos per creare successivamente dei file batch......
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing
![]() |
![]() |
![]() |
![]() |
#2 | |
Bannato
Iscritto dal: Sep 2008
Messaggi: 220
|
Quote:
|
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jun 2007
Città: Amiga Nation
Messaggi: 15536
|
Quote:
![]() In effetti da shell MSDOS i wildcard rispetto a sistemi Unix-like non funzionano come hai fatto tu e come avrei fatto anch'io... però prova senza il "\" in mezzo, ovvero "dir /S d:\dvd\dupli*.vob" etc.... il resto che hai scritto con la pipe usata così non va bene per fare ciò che hai in mente, però non riesco a trovare un modo per fare ciò che hai in mente da MSDOS...
__________________
![]() Ultima modifica di hexaae : 09-08-2009 alle 22:44. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2007
Città: Amiga Nation
Messaggi: 15536
|
Ok, ho trovato...
![]() for /R "D:\dvd" %a IN (file.vob) DO copy "%a" <dest path> Esegui questa riga da prompt e dovrebbe andare... /R "D:\dvd" tieni presente che gli dice di entrare ricorsivamente in tutte le dir a cominciare da quel path. In alternativa devi crearti un batch dove specifichi anche la sub-dir in cui entrare ma con l'ausilio dei wildcards, se ti interessa: @echo off set curdir=%CD% cd %1 for /f "tokens=*" %%a in ('dir /b /w %2') do ( cd "%%a" copy %3 %4 cd .. ) cd %curdir% set curdir= Andrà usato come nomefile.bat "dir in cui entrare, ad es. D:\DVD" "subdir che ti interessa, ad es. dupli*" "file.vob" "<dest dir>" Es. nel tuo caso: nomefile.bat "D:\DVD" "dupli*" "file.vob" "<dest dir>" Comunque dato che il nome del file è sempre lo stesso "file.vob" non ho capito cosa vuoi farci: ogni volta riscriverai il file.vob con l'ultimo trovato nell'ultima directory in cui sei entrato... Non è corretto e non ho ben capito cosa vuoi ottenere.
__________________
![]() Ultima modifica di hexaae : 10-08-2009 alle 17:46. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
|
Quote:
Cmq ho dovuto spostare le directory Dupli in un'altra sottodirectory (Creata ad hoc) perchè sotto \DVD di file.vob c'erano a bizzeffe, anche in altre directory che non m'interessavano! Mi ero dimenticato dell'esistenza del for sotto dos..... ![]() Tramite la power shell tuttavia il comando si semplifica nella forma mv d:\dvd\dupli*\*.vob <dest path> molto stile linux..... cmq grazie ancora ![]()
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing
![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2007
Città: Amiga Nation
Messaggi: 15536
|
Ah! Meno male, anch'io sono abituato stile unix senza tanti limiti nell'uso delle wildcards o espansione dei backtick etc.
Nel frattempo avevo modificato il msg sopra ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
|
Quote:
Grazie ancora per lo script ![]()
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing
![]() |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jun 2007
Città: Amiga Nation
Messaggi: 15536
|
Quote:
![]() Sono invece alle prese con un problema con PowerShell ora: hai idea di come si possa eseguire l'equivalente di un doppio backtick (come si fa su shell Unix-like e anche su AmigaOS) per eseguire un comando, in una linea di comando più grande? Es. semplice echo `date` sotto altre shell non fa altro che eseguire date e dare in pasto ad echo l'output che ne consegue. È una cosa comodissima che ho usato per anni sugli altri sistemi... Non riesco a capire come si possa ottenere lo stesso dalla PowerShell. Ho cercato anche in rete ma nessuno affronta la questione...
__________________
![]() |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
|
Quote:
Quindi il tuo echo 'date' diventerebbe echo $(date) sotto powerShell! Prova in questo modo, spero ti sia d'aiuto..... ![]()
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing
![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2007
Città: quel ramo del lago di como, che volge a mezzogiorno... ^^
Messaggi: 19625
|
con $(..) bindi il comando a una variabile... sa molto di C ^^
__________________
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jun 2007
Città: Amiga Nation
Messaggi: 15536
|
Ahh!
![]() Ottimo, grazie ragazzi il classico echo "Oggi è $(date)" sembra funzionare! Mi mancava proprio e mi sembrava strano non ci fosse modo con la PowerShell! Se vi interessa invece crearvi i vostri alias in un profilo personalizzato ho trovato questo articolo: http://www.powershellpro.com/powersh...shell-aliases/ dove in breve si dice di eseguire il comando Set-ExecutionPolicy Unrestricted per "sbloccare" l'esecuzione degli script e file di configurazione in avvio. Dopodiché basterà creare il file .ps1 al percorso indicato da $Profile contenente eventuali alias e altre personalizzazioni che verranno inizializzate all'avvio di ogni shell, io ad esempio ho aggiunto il classico grep (find, su alcuni sistemi): Set-Alias grep Select-String
__________________
![]() Ultima modifica di hexaae : 11-08-2009 alle 00:08. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:54.