CMD.exe: déplacer les fichiers vers un dossier

1

Voici la structure de mon dossier:

destination.lnk
file.1
file.2
file.3
file.4

Comment puis-je déplacer ces fichiers avec la ligne de commande vers "destination" sans avoir à taper le chemin complet?

move file.* destination.lnk
Cannot move multiple files to a single file
divisé
la source
2
Vous pouvez créer une variable d'environnement pour cela. Comme% ProgramFiles%, il se dirigera automatiquement vers l'emplacement souhaité. Allez dans "Système" dans le Panneau de configuration, cliquez sur "Paramètres système avancés", cliquez sur "Variables d'environnement", cliquez sur "Nouveau", créez un nom de variable, cliquez sur "Parcourir le répertoire" et naviguez jusqu'au dossier ou collez le dossier de destination. Ensuite, référencez-le à l'aide de% nom_variable%
nom_vari nom
1
Vous devez extraire le répertoire de destination du raccourci. Pour ce faire, il n’existe pas de méthode simple cmd, mais reportez-vous à la section Comment analyser un raccourci .LNK à partir de l’invite de commande de Windows? pour une possibilité.
DavidPostill

Réponses:

2

Vous obtenez l'erreur parce que vous essayez de déplacer deux fichiers dans le fichier à lien unique et vous ne pouvez pas le faire.

Au lieu de cela, je vous recommanderais d'enregistrer un chemin cible dans une variable et de déplacer les fichiers vers sa valeur exprimée:

SET location=C:\your_folder
move file.* %location%

ÉDITÉ:

Si j'ai bien compris, vous souhaitez stocker l'emplacement dans le dossier cible dans un fichier séparé. Vous pouvez donc simplement remplacer le raccourci que vous avez par un fichier texte contenant le chemin cible:

set /p location=<destination.txt
move file.* %location%
Igor Andri
la source
Ne devrais-je toujours pas taper tout le chemin pour définir la variable?
divisé le
Dans le second cas, vous pouvez enregistrer le chemin d'accès au fichier, ce qui est assez similaire à l'approche de raccourci que vous avez suggérée
Igor Andri
Utilisation de la deuxième approche - Si je définit l'emplacement sur destination.txt, le fichier ne peut pas être trouvé car un fichier .txt n'existe pas. Si je règle l'emplacement à destination.lnk, la variable réelle stocke "L"
divisé le
d’abord, vous créez un fichier contenant le chemin vers lequel vous voulez déplacer vos fichiers, c’est-à-dire qu’à l’aide de Notepad, vous placez la ligne "C: \ votre_folder" dans le répertoire destination.txt. Une fois que le fichier est dans votre dossier actuel, la commande le trouvera
Igor Andri
Mais si je crée un fichier texte, je
divisé le
2

Vous pouvez créer un lien symbolique

mklink Destination "C:\Users\All Users\Dokumente"

puis

move file.* Destination\

le backslash final est important car le lien symbolique lui-même ne peut pas être la cible.

Le lien symbolique apparaîtra dans un répertoire comme sys:

> dir des*
 Volume in drive C is System-Xxxxx
 Volume Serial Number is xxxx-xxxx

 Directory of c:\Test

06/26/2017  18:33    <SYMLINK>      Destination [c:\Users\All Users\Dokumente]
               1 File(s)              0 bytes
               0 Dir(s)  89.795.506.176 bytes free
Lotings
la source
1

Si vous souhaitez utiliser PowerShell, voici un script permettant de faire exactement ce que vous voulez, tout en le maintenant encapsulé dans une variable:

$Shell = New-Object -ComObject WScript.Shell
$Shortcut = '.\shortcut.lnk'
$TargetPath = $Shell.CreateShortcut($Shortcut).targetpath

Utilisez ensuite cette variable dans PowerShell pour obtenir ce que vous voulez.

var prenom
la source