Подстановочный знак в cmd файлах - PullRequest
1 голос
/ 10 апреля 2011

Я столкнулся с ситуацией, когда мне нужно удалить один файл во всех каталогах пользователей

например.

C:\Users\User1\Desktop\deleteme.txt
C:\Users\User2\Desktop\deleteme.txt
C:\Users\User3\Desktop\deleteme.txt

Мне нужна команда, которая будет обрабатывать каталог пользователей как шаблон, поэтому мне не нужно ничего указывать.

Я пробовал:

C:\Users\*\Desktop\deleteme.txt

Что не работает: (

Любая помощь будет оценена

Ответы [ 2 ]

2 голосов
/ 10 апреля 2011

Вы можете попробовать перебрать нужные папки:

for %%X in (C:\Users\User1 C:\Users\User2 C:\Users\User3) do (del %%X\Desktop\deleteme.txt )

или

for /d %%X in (C:\Users\*) do (del %%X\Desktop\deleteme.txt )

есть хорошая статья Итерация с "Для"

UPDATE Таким образом:

for /d %%A in (C:\Users\*) do for /d %%B in (%%A\*) do echo %%B

Вы можете перечислить все подкаталоги во всех папках пользователя.

0 голосов
/ 10 апреля 2011

C: \ Users * \ Desktop \ deleteme.txt

Я думал, что после C:\Users может отсутствовать обратная косая черта, но это не так.Это проблема синтаксиса здесь, как я только что заметил.Обратная косая черта перед астриском не указывается.

Если пакетный файл оказывается недостаточным и вы работаете только в Windows 7, вы можете переключиться на PowerShell

...