Вопрос или проблема
В моем Windows 10 я не могу видеть последние файлы, пока не обновлю папку. Существует ли какая-либо команда пакета, которая может обновить только конкретную папку?
Команда, которую я нахожу в Google, либо перезагружает «Проводник Windows», либо обновляет весь диск (дерево D:/).
Спасибо, Мохит
Обычно Windows корректно обновляет папку, если в ней есть новые элементы.
Это не сработает, если файлы не находятся локально, а вместо этого находятся на сетевом ресурсе, так как Windows не может отслеживать сам диск. Windows может получать обновления на диске напрямую, просто не через сетевой ресурс. Windows все равно будет обновлять содержимое этого диска (т.е. обновлять), но реже, так как ему просто нужно вручную обновить содержимое.
Если ждать невозможно, тогда вы можете удалить сетевую привязку и снова ее подключить. Поскольку удаление сетевой привязки все равно закроет окно проводника, просто выйдя из директории и вернувшись назад (не используя кнопку «Назад», а физически кликнув по папке) будет достаточно для обновления. Также нажатие F5 сделает то же самое.
Таким образом, на самом деле это самый быстрый способ просто вручную обновить папку. На мой взгляд, нажатие F5 является самым быстрым способом.
Вы можете попробовать vbs + cmd скрипт:
@echo off
> "%temp%\run_vbs.vbs" <nul (
set /p "'=WScript.CreateObject("WScript.Shell").AppActivate WScript.CreateObject("WScript.Shell").CurrentDirectory : "
set /p "'=WScript.Sleep 3000: WScript.CreateObject("WScript.Shell").SendKeys "{F5}""
) & cd /d "%temp%\." && %__AppDir__%cscript.exe //nologo "%temp%\run_vbs.vbs"
2>nul del/q /f "%temp%\run_vbs.vbs"
1. Используйте перенаправление для создания вашего vbs во время выполнения:
> "%temp%\run_vbs.vbs" (
2. Используйте set/p
, чтобы создать однострочный vbs скрипт:
set /p "'=WScript.CreateObject("WScript.Shell").AppActivate WScript.CreateObject("WScript.Shell").CurrentDirectory : "
set /p "'=WScript.Sleep 3000: WScript.CreateObject("WScript.Shell").SendKeys "{F5}""
- Файл VBS:
WScript.CreateObject("WScript.Shell").AppActivate WScript.CreateObject("WScript.Shell").CurrentDirectory : WScript.Sleep 3000: WScript.CreateObject("WScript.Shell").SendKeys "{F5}"
- Что делает файл VBS:
' :: Определяет текущее окно проводника с текущей папкой
' :: Активирует текущую папку (выводит на передний план)
WScript.CreateObject("WScript.Shell").AppActivate
WScript.CreateObject("WScript.Shell").CurrentDirectory
' :: Применяет время ожидания/паузы в 3 секунды
' :: Отправляет клавишу F5, имитируя нажатие/вставку обновления
WScript.Sleep 3000
WScript.CreateObject("WScript.Shell").SendKeys "{F5}"
3. Перейдите в целевую папку и запустите свой vbs скрипт оттуда
cd /d "%temp%\." & %__AppDir__%cscript.exe //nologo "%temp%\run_vbs.vbs"
- Некоторые дополнительные материалы:
Дополнительные ресурсы:
PowerShell:
@((New-Object -com shell.application).Windows()).ForEach{$_.Refresh()}
обновит все открытые окна Проводника.
Ответ или решение
Команда пакетного файла для обновления папки в Windows 10
В Windows 10 время от времени возникает необходимость вручную обновлять содержимое папки, особенно когда вы работаете с сетевыми ресурсами. По умолчанию Windows должна автоматически обновлять содержимое папок, но это может не срабатывать так часто, как нам хотелось бы, особенно при работе с общими папками. В этой статье мы рассмотрим несколько решений, которые могут помочь вам быстро обновить содержимое конкретной папки без необходимости перезагрузки проводника Windows или всей файловой системы.
Проблема обновления содержимого папки
Когда файлы находятся на сетевом ресурсе, Windows может не обновлять содержимое папки в реальном времени, так как она не может отслеживать изменения на удаленном диске так же эффективно, как на локальных дисках. Пользователи часто замечают, что актуальные файлы не отображаются в проводнике, и им приходится вручную проводить обновление.
Решения для обновления папки
-
Использование нажатия клавиши F5
Самый простой способ обновить содержимое папки — это нажать клавишу F5. Это позволяет немедленно отобразить новые файлы и изменения в папке. Однако данный метод требует физического взаимодействия с интерфейсом. -
Создание VBS-скрипта для автоматизации обновления
Вы можете создать небольшой VBS-скрипт, который будет эмулировать нажатие клавиши F5 для активного окна. С помощью пакетного файла мы можем создать VBS-скрипт, который сделает это за вас:@echo off > "%temp%\run_vbs.vbs" <nul ( set /p "'=WScript.CreateObject("WScript.Shell").AppActivate WScript.CreateObject("WScript.Shell").CurrentDirectory : " set /p "'=WScript.Sleep 3000: WScript.CreateObject("WScript.Shell").SendKeys "{F5}"" ) & cd /d "%temp%\." && %__AppDir__%cscript.exe //nologo "%temp%\run_vbs.vbs" 2>nul del/q /f "%temp%\run_vbs.vbs"
Как работает этот скрипт:
- Он создает временный VBS-файл, который активирует текущее окно (проводник) и отправляет ему команду нажатия клавиши F5 после короткой задержки.
- По завершении работы временный файл удаляется.
-
PowerShell для обновления всех окон проводника
Если вы хотите обновить все открытые окна проводника, вы можете использовать PowerShell с следующей командой:@((New-Object -com shell.application).Windows()).ForEach{$_.Refresh()}
Этот скрипт выполнит обновление всех открытых окон проводника, что может быть полезно, если у вас открыто несколько папок.
Заключение
Использование простых сочетаний клавиш — в частности, F5 — является самым быстрым и прямым методом для обновления папки в Windows 10. Если же вам нужно автоматизировать этот процесс, создание VBS-скрипта или использование PowerShell могут стать отличным дополнением в вашем арсенале инструментов. В конечном итоге, выбор подходящего метода зависит от конкретных сценариев использования и вашей практики работы с файлами в системе.