Ярлык ссылка на url directory shell cmd как исправить

Shift-rightclicking an empty spot in Explorer displays "Open with PowerShell" instead of "Open with Command Prompt" since the Creators Update (2017-04). How can I get the old behaviour back where it

Here’s a script that will add the Open command window here to Explorer’s right-click context menu. The script uses RunAsTI.bat to add & remove the relevant registry values as the TrustedInstaller account. This obviates changing the registry keys’ permissions. Run it from an elevated command window. No restart of anything required to see the change.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
OPENFILES.EXE 1>NUL 2>&1
IF ERRORLEVEL 1 ECHO You need to run this script from an elevated command prompt. Exiting. & EXIT /B 1
TITLE Configure CMD/Powershell for the Explorer SHIFT+RIGHTCLICK menu
SET REGKEYS=HKCRDriveshell HKCRDirectoryshell HKCRDirectoryBackgroundshell
FOR %%I IN (%REGKEYS%) DO SET CMD_STRING=!CMD_STRING!REG ADD %%Icmd /v ShowBasedOnVelocityId /t REG_DWORD /d 6527944 /f ^& REG DELETE %%Icmd /v HideBasedOnVelocityId /f ^& 
CALL :RunAsTI CMD /C "!CMD_STRING:~0,-3!"

REM https://github.com/AveYo/LeanAndMean
#:RunAsTI snippet to run as TI/System, with innovative HKCU load, ownership privileges, high priority, and explorer support  
set ^ #=& set "0=%~f0"& set 1=%*& powershell -c iex(([io.file]::ReadAllText($env:0)-split'#:RunAsTI .*')[1])& exit /b
function RunAsTI ($cmd,$arg) { $id='RunAsTI'; $key="Registry::HKU$(((whoami /user)-split' ')[-1])Volatile Environment"; $code=@'
 $I=[int32]; $M=$I.module.gettype("System.Runtime.Interop`Services.Mar`shal"); $P=$I.module.gettype("System.Int`Ptr"); $S=[string]
 $D=@(); $T=@(); $DM=[AppDomain]::CurrentDomain."DefineDynami`cAssembly"(1,1)."DefineDynami`cModule"(1); $Z=[uintptr]::size 
 0..5|% {$D += $DM."Defin`eType"("AveYo_$_",1179913,[ValueType])}; $D += [uintptr]; 4..6|% {$D += $D[$_]."MakeByR`efType"()}
 $F='kernel','advapi','advapi', ($S,$S,$I,$I,$I,$I,$I,$S,$D[7],$D[8]), ([uintptr],$S,$I,$I,$D[9]),([uintptr],$S,$I,$I,[byte[]],$I)
 0..2|% {$9=$D[0]."DefinePInvok`eMethod"(('CreateProcess','RegOpenKeyEx','RegSetValueEx')[$_],$F[$_]+'32',8214,1,$S,$F[$_+3],1,4)}
 $DF=($P,$I,$P),($I,$I,$I,$I,$P,$D[1]),($I,$S,$S,$S,$I,$I,$I,$I,$I,$I,$I,$I,[int16],[int16],$P,$P,$P,$P),($D[3],$P),($P,$P,$I,$I)
 1..5|% {$k=$_; $n=1; $DF[$_-1]|% {$9=$D[$k]."Defin`eField"('f' + $n++, $_, 6)}}; 0..5|% {$T += $D[$_]."Creat`eType"()}
 0..5|% {nv "A$_" ([Activator]::CreateInstance($T[$_])) -fo}; function F ($1,$2) {$T[0]."G`etMethod"($1).invoke(0,$2)}   
 $TI=(whoami /groups)-like'*1-16-16384*'; $As=0; if(!$cmd) {$cmd='control';$arg='admintools'}; if ($cmd-eq'This PC'){$cmd='file:'}
 if (!$TI) {'TrustedInstaller','lsass','winlogon'|% {if (!$As) {$9=sc.exe start $_; $As=@(get-process -name $_ -ea 0|% {$_})[0]}}
 function M ($1,$2,$3) {$M."G`etMethod"($1,[type[]]$2).invoke(0,$3)}; $H=@(); $Z,(4*$Z+16)|% {$H += M "AllocHG`lobal" $I $_}
 M "WriteInt`Ptr" ($P,$P) ($H[0],$As.Handle); $A1.f1=131072; $A1.f2=$Z; $A1.f3=$H[0]; $A2.f1=1; $A2.f2=1; $A2.f3=1; $A2.f4=1
 $A2.f6=$A1; $A3.f1=10*$Z+32; $A4.f1=$A3; $A4.f2=$H[1]; M "StructureTo`Ptr" ($D[2],$P,[boolean]) (($A2 -as $D[2]),$A4.f2,$false)
 $Run=@($null, "powershell -win 1 -nop -c iex `$env:R; # $id", 0, 0, 0, 0x0E080600, 0, $null, ($A4 -as $T[4]), ($A5 -as $T[5]))
 F 'CreateProcess' $Run; return}; $env:R=''; rp $key $id -force; $priv=[diagnostics.process]."GetM`ember"('SetPrivilege',42)[0]   
 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege' |% {$priv.Invoke($null, @("$_",2))}
 $HKU=[uintptr][uint32]2147483651; $NT='S-1-5-18'; $reg=($HKU,$NT,8,2,($HKU -as $D[9])); F 'RegOpenKeyEx' $reg; $LNK=$reg[4]
 function L ($1,$2,$3) {sp 'HKLM:SoftwareClassesAppID{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}' 'RunAs' $3 -force -ea 0
  $b=[Text.Encoding]::Unicode.GetBytes("RegistryUser$1"); F 'RegSetValueEx' @($2,'SymbolicLinkValue',0,6,[byte[]]$b,$b.Length)}
 function Q {[int](gwmi win32_process -filter 'name="explorer.exe"'|?{$_.getownersid().sid-eq$NT}|select -last 1).ProcessId}
 $11bug=($((gwmi Win32_OperatingSystem).BuildNumber)-eq'22000')-AND(($cmd-eq'file:')-OR(test-path -lit $cmd -PathType Container))
 if ($11bug) {'System.Windows.Forms','Microsoft.VisualBasic' |% {[Reflection.Assembly]::LoadWithPartialName("'$_")}}
 if ($11bug) {$path=$path='^(l)'+$($cmd -replace '([+^%~()[]])','{$1}')+'{ENTER}'; $cmd='control.exe'; $arg='admintools'}
 L ($key-split'\')[1] $LNK ''; $R=[diagnostics.process]::start($cmd,$arg); if ($R) {$R.PriorityClass='High'; $R.WaitForExit()}
 if ($11bug) {$w=0; do {if($w-gt40){break}; sleep -mi 250;$w++} until (Q); [Microsoft.VisualBasic.Interaction]::AppActivate($(Q))}
 if ($11bug) {[Windows.Forms.SendKeys]::SendWait($path)}; do {sleep 7} while(Q); L '.Default' $LNK 'Interactive User'
'@; $V='';'cmd','arg','id','key'|%{$V+="`n`$$_='$($(gv $_ -val)-replace"'","''")';"}; sp $key $id $($V,$code) -type 7 -force -ea 0
 start powershell -args "-win 1 -nop -c `n$V `$env:R=(gi `$key -ea 0).getvalue(`$id)-join''; iex `$env:R" -verb runas
}; $A=$env:1-split'"([^"]+)"|([^ ]+)',2|%{$_.Trim(' "')}; RunAsTI $A[1] $A[2]; #:RunAsTI lean & mean snippet by AveYo, 2022.01.28

If you want to replace the Open PowerShell window here option with Open command window here, or you want to restore the default Open PowerShell window here option, having previously changed it, you can use an enhanced version of the script.

Note a few benign things that will occur when you run either version of the script:

  • You may see a The system cannot find the drive specified. message in your CMD window
  • You’ll probably see a few REG errors in the child CMD window that is created after running the script
  • Once the script has completed you’ll see a Control PanelAll Control Panel ItemsAdministrative Tools window. This can be safely closed, as it is just a side-effect of utilising the RunAsTI snippet

Here’s a script that will add the Open command window here to Explorer’s right-click context menu. The script uses RunAsTI.bat to add & remove the relevant registry values as the TrustedInstaller account. This obviates changing the registry keys’ permissions. Run it from an elevated command window. No restart of anything required to see the change.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
OPENFILES.EXE 1>NUL 2>&1
IF ERRORLEVEL 1 ECHO You need to run this script from an elevated command prompt. Exiting. & EXIT /B 1
TITLE Configure CMD/Powershell for the Explorer SHIFT+RIGHTCLICK menu
SET REGKEYS=HKCRDriveshell HKCRDirectoryshell HKCRDirectoryBackgroundshell
FOR %%I IN (%REGKEYS%) DO SET CMD_STRING=!CMD_STRING!REG ADD %%Icmd /v ShowBasedOnVelocityId /t REG_DWORD /d 6527944 /f ^& REG DELETE %%Icmd /v HideBasedOnVelocityId /f ^& 
CALL :RunAsTI CMD /C "!CMD_STRING:~0,-3!"

REM https://github.com/AveYo/LeanAndMean
#:RunAsTI snippet to run as TI/System, with innovative HKCU load, ownership privileges, high priority, and explorer support  
set ^ #=& set "0=%~f0"& set 1=%*& powershell -c iex(([io.file]::ReadAllText($env:0)-split'#:RunAsTI .*')[1])& exit /b
function RunAsTI ($cmd,$arg) { $id='RunAsTI'; $key="Registry::HKU$(((whoami /user)-split' ')[-1])Volatile Environment"; $code=@'
 $I=[int32]; $M=$I.module.gettype("System.Runtime.Interop`Services.Mar`shal"); $P=$I.module.gettype("System.Int`Ptr"); $S=[string]
 $D=@(); $T=@(); $DM=[AppDomain]::CurrentDomain."DefineDynami`cAssembly"(1,1)."DefineDynami`cModule"(1); $Z=[uintptr]::size 
 0..5|% {$D += $DM."Defin`eType"("AveYo_$_",1179913,[ValueType])}; $D += [uintptr]; 4..6|% {$D += $D[$_]."MakeByR`efType"()}
 $F='kernel','advapi','advapi', ($S,$S,$I,$I,$I,$I,$I,$S,$D[7],$D[8]), ([uintptr],$S,$I,$I,$D[9]),([uintptr],$S,$I,$I,[byte[]],$I)
 0..2|% {$9=$D[0]."DefinePInvok`eMethod"(('CreateProcess','RegOpenKeyEx','RegSetValueEx')[$_],$F[$_]+'32',8214,1,$S,$F[$_+3],1,4)}
 $DF=($P,$I,$P),($I,$I,$I,$I,$P,$D[1]),($I,$S,$S,$S,$I,$I,$I,$I,$I,$I,$I,$I,[int16],[int16],$P,$P,$P,$P),($D[3],$P),($P,$P,$I,$I)
 1..5|% {$k=$_; $n=1; $DF[$_-1]|% {$9=$D[$k]."Defin`eField"('f' + $n++, $_, 6)}}; 0..5|% {$T += $D[$_]."Creat`eType"()}
 0..5|% {nv "A$_" ([Activator]::CreateInstance($T[$_])) -fo}; function F ($1,$2) {$T[0]."G`etMethod"($1).invoke(0,$2)}   
 $TI=(whoami /groups)-like'*1-16-16384*'; $As=0; if(!$cmd) {$cmd='control';$arg='admintools'}; if ($cmd-eq'This PC'){$cmd='file:'}
 if (!$TI) {'TrustedInstaller','lsass','winlogon'|% {if (!$As) {$9=sc.exe start $_; $As=@(get-process -name $_ -ea 0|% {$_})[0]}}
 function M ($1,$2,$3) {$M."G`etMethod"($1,[type[]]$2).invoke(0,$3)}; $H=@(); $Z,(4*$Z+16)|% {$H += M "AllocHG`lobal" $I $_}
 M "WriteInt`Ptr" ($P,$P) ($H[0],$As.Handle); $A1.f1=131072; $A1.f2=$Z; $A1.f3=$H[0]; $A2.f1=1; $A2.f2=1; $A2.f3=1; $A2.f4=1
 $A2.f6=$A1; $A3.f1=10*$Z+32; $A4.f1=$A3; $A4.f2=$H[1]; M "StructureTo`Ptr" ($D[2],$P,[boolean]) (($A2 -as $D[2]),$A4.f2,$false)
 $Run=@($null, "powershell -win 1 -nop -c iex `$env:R; # $id", 0, 0, 0, 0x0E080600, 0, $null, ($A4 -as $T[4]), ($A5 -as $T[5]))
 F 'CreateProcess' $Run; return}; $env:R=''; rp $key $id -force; $priv=[diagnostics.process]."GetM`ember"('SetPrivilege',42)[0]   
 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege' |% {$priv.Invoke($null, @("$_",2))}
 $HKU=[uintptr][uint32]2147483651; $NT='S-1-5-18'; $reg=($HKU,$NT,8,2,($HKU -as $D[9])); F 'RegOpenKeyEx' $reg; $LNK=$reg[4]
 function L ($1,$2,$3) {sp 'HKLM:SoftwareClassesAppID{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}' 'RunAs' $3 -force -ea 0
  $b=[Text.Encoding]::Unicode.GetBytes("RegistryUser$1"); F 'RegSetValueEx' @($2,'SymbolicLinkValue',0,6,[byte[]]$b,$b.Length)}
 function Q {[int](gwmi win32_process -filter 'name="explorer.exe"'|?{$_.getownersid().sid-eq$NT}|select -last 1).ProcessId}
 $11bug=($((gwmi Win32_OperatingSystem).BuildNumber)-eq'22000')-AND(($cmd-eq'file:')-OR(test-path -lit $cmd -PathType Container))
 if ($11bug) {'System.Windows.Forms','Microsoft.VisualBasic' |% {[Reflection.Assembly]::LoadWithPartialName("'$_")}}
 if ($11bug) {$path=$path='^(l)'+$($cmd -replace '([+^%~()[]])','{$1}')+'{ENTER}'; $cmd='control.exe'; $arg='admintools'}
 L ($key-split'\')[1] $LNK ''; $R=[diagnostics.process]::start($cmd,$arg); if ($R) {$R.PriorityClass='High'; $R.WaitForExit()}
 if ($11bug) {$w=0; do {if($w-gt40){break}; sleep -mi 250;$w++} until (Q); [Microsoft.VisualBasic.Interaction]::AppActivate($(Q))}
 if ($11bug) {[Windows.Forms.SendKeys]::SendWait($path)}; do {sleep 7} while(Q); L '.Default' $LNK 'Interactive User'
'@; $V='';'cmd','arg','id','key'|%{$V+="`n`$$_='$($(gv $_ -val)-replace"'","''")';"}; sp $key $id $($V,$code) -type 7 -force -ea 0
 start powershell -args "-win 1 -nop -c `n$V `$env:R=(gi `$key -ea 0).getvalue(`$id)-join''; iex `$env:R" -verb runas
}; $A=$env:1-split'"([^"]+)"|([^ ]+)',2|%{$_.Trim(' "')}; RunAsTI $A[1] $A[2]; #:RunAsTI lean & mean snippet by AveYo, 2022.01.28

If you want to replace the Open PowerShell window here option with Open command window here, or you want to restore the default Open PowerShell window here option, having previously changed it, you can use an enhanced version of the script.

Note a few benign things that will occur when you run either version of the script:

  • You may see a The system cannot find the drive specified. message in your CMD window
  • You’ll probably see a few REG errors in the child CMD window that is created after running the script
  • Once the script has completed you’ll see a Control PanelAll Control Panel ItemsAdministrative Tools window. This can be safely closed, as it is just a side-effect of utilising the RunAsTI snippet

Основные причины URL ошибок, связанных с файлом shell.url, включают отсутствие или повреждение файла, или, в некоторых случаях, заражение связанного Linux Applications 6.0 вредоносным ПО в прошлом или настоящем. Основной способ решить эти проблемы вручную — заменить файл URL новой копией. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на shell.url, которые могут являться причиной ошибки.

Загрузите новую версию shell.url для %%os%% в списке файлов ниже. Также доступны варианты для других версий Windows (при необходимости). В некоторых случаях в настоящее время в нашей базе могут отсутствовать некоторые версии shell.url, но их можно запросить, нажав на кнопку Request (Запрос) ниже. Если ниже отсутствует необходимая версия файла, мы рекомендуем вам связаться непосредственно с Red Hat Software Inc..

Поместите новый файл shell.url на место предыдущего (перезаписав предыдущий). Проблема больше не должна возникать, однако, чтобы убедиться в этом окончательно, следует выполнить проверку. Убедитесь в том, что вам удалось устранить ошибку, открыв Linux Applications 6.0 и (или) выполнив операцию, при выполнении которой возникала проблема.

Shell.url Описание файла
Тип: URL
Категория: c. 1999
Софт: Linux Applications 6.0
Версия: 1.0.0.0
Автор: Red Hat Software Inc.
 
File: shell.url  

Байт: 3415
SHA-1: D72C62FA1C97B1F209778E586568D8ED95AA54FB
MD5: A27E529AC4207E46D677F2D5F756A1E1
CRC32:

Продукт Solvusoft

Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в shell.url

Windows
11/10/8/7/Vista/XP

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

URL
shell.url

Идентификатор статьи:   1357913

Shell.url

Filename Контрольная сумма MD5 Размер Загрузить
+ shell.url A27E529AC4207E46D677F2D5F756A1E1 3.33 KB
Софт Linux Applications 6.0 1.0.0.0
Создано Red Hat Software Inc.
Версия Windows 10
Тип 64-разрядная (x64)
Размер (в байтах) 3415
Контрольная сумма MD5 A27E529AC4207E46D677F2D5F756A1E1
Контрольная сумма SHA1 D72C62FA1C97B1F209778E586568D8ED95AA54FB
CRC32:
Расположение файла C:WindowsSystem32

Распространенные сообщения об ошибках в Shell.url

Вопросы, связанные с shell.url и Linux Applications 6.0:

  • «Ошибка в файле Shell.url.»
  • «Shell.url пропал без вести. «
  • «Не удалось найти shell.url. «
  • «Не удалось загрузить модуль для shell.url. «
  • «Отсутствует модуль: не удалось зарегистрировать shell.url»
  • «Ошибка во время выполнения: shell.url. «
  • «Ошибка загрузки: shell.url. «

Проблемы, связанные с Shell.url, иногда связанные с Linux Applications 6.0, возникают во время запуска/завершения работы, во время запуска программы, связанной с Shell.url, или редко во время процесса установки Windows. Запись при возникновении ошибок shell.url имеет первостепенное значение для поиска причины проблем Linux Applications 6.0 и сообщения о них в Red Hat Software Inc. за помощью.

Источники проблем Shell.url

Проблемы shell.url могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с shell.url, или к вирусам / вредоносному ПО.

В основном, осложнения shell.url из-за:

  • Запись shell.url повреждена или недопустима.
  • Вирус заразил shell.url, создавая повреждения.
  • shell.url злонамеренно или ошибочно удален другим программным обеспечением (кроме Linux Applications 6.0).
  • shell.url конфликтует с другой программой (общим файлом).
  • Поврежденная установка или загрузка Linux Applications 6.0 (shell.url).

Я использовал Shift + mouse right click чтобы открыть cmd в текущей папке.
Думаю, это самый быстрый способ, в суперпользователе есть какое-то подходящее решение:

В ярлыке «как я могу открыть командную строку в текущей папке с клавиатурой»

  1. Shift + Меню (или Shift + F10), W, Enter

    нужно ввести 4 ключа и набрать 3 раза. (Я думаю, что это работало на всех окнах (по крайней мере, от 7 до 10 я тестировал)

  2. Путь AHK. Вам просто нужно нажать Win + C (см. Подробности в приведенном выше вопросе), но вам нужно установить ANK , вставить скрипт и установить его при запуске Windows.

Есть ли более простой и быстрый способ сделать это в Windows 10?

Простой способ с 3 клавишами, никаких дополнительных настроек не требуется:

Alt + D, E


Нажатие Alt + D откроет меню в проводнике Windows с включенной и показанной мнемоникой.

Затем просто нажмите мнемоническую клавишу для CMD, и она сразу же откроется. В моем случае это E, но он может отличаться для вас, в зависимости от языка вашей системы.

Alt + F, P

Просто три ключа и введите дважды, без помощи другой программы.


Для соменое мнение, что ярлык не работает:

Я бы показал вам, как найти правильный ключ здесь

примечание: мой системный язык китайский, но компоновка такая же, вы не пропустите.

  1. Вам нужно открыть папку

    Примечание. Параметр « Open command prompt может быть недоступен в некоторых местах, спасибо за ответ @PIMP_JUICE_IT , нажмите, чтобы увидеть подробности. ,

    Вам нужно ввести реальную папку, специальная папка, такая как Favorite , не будет работать, потому что у нее нет реального пути, у меня есть попытка найти:

    зеленая папка не настоящая папка (ярлык не работает), но папка в красной зоне в порядке

  2. нажмите и удерживайте Alt , вы увидите горячую клавишу File Button (верхнее левое окно)

    Это F в моей системе. F может быть другой в вашей системе, просто замените его.

  3. Удерживая Alt + F (замените F вашей системной клавишей File), вы также увидите метку горячей клавиши.

    P — это сочетание клавиш cmd (замените P на ключ cmd Вашей системы, который вы видите)

Тогда просто сделайте:

Alt + Ваша системная клавиша File, Ваша системная клавиша cmd

PS: Если все еще не работает, пожалуйста, проверьте привязку ярлыка, должна быть какая-то программа, чтобы взять на себя управление.

Еще один метод по умолчанию для всех клавиатур

Находясь в текущей папке в проводнике Windows, нажмите ALT+D, введите CMD и нажмите Enter


ВНИМАНИЕ: Проблемы с ALT + F + P (и другими методами)

Этот компьютер, быстрый доступ и другие специальные представления в проводнике являются реальной проблемой

  1. Кажется, если вы откроете Windows ExplorerFile Explorer и по умолчанию он откроет этот компьютер, то параметр « Открыть» в командной строке будет выделен серым цветом, и фактически нажатие клавиши P на этом этапе ничего не делает, если это так. Это кажется проблемой для других специальных представлений File Explorer, таких как Quick Access.

  2. При нажатии ALT+D, вводе CMD и нажатии Enter на этом ПК (и в режиме быстрого доступа) через проводник, открывается командная строка в каталоге C:WINDOWSsystem32.

ответ дан Pimp Juice IT25k

Самый быстрый способ открыть cmd в определенной папке Windows:ввести cmd в URL-адрес папки и нажать Enter.

Вот скриншот для дальнейшей иллюстрации:

Если вы можете слегка изменить глагол «Открыть окно команд здесь», вы можете сохранить 2 нажатия клавиш. Предполагается, что в данный момент в папке нет файлов.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTdirectoryBackgroundShellcmd]
@="Open co&mmand window here"
"Extended"=-

Это исправление REG делает 2 вещи:

  1. Удаляет строковое значение с именем Extended чтобы вам не приходилось использовать клавишу SHIFT для доступа к команде.

  2. Меняет акселератор на букву m вместо w . Поскольку никакие другие пункты меню не используют m , нажатие клавиши меню + m открывает окно командной строки без необходимости нажимать клавишу ВВОД . (Это работает по крайней мере в англоязычных версиях Windows.)

Если вы передумали и хотите вернуть настройки к значениям по умолчанию, используйте этот файл REG.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTdirectoryBackgroundShellcmd]
@="@shell32.dll,-8506"
"Extended"=""

Всё ещё ищете ответ? Посмотрите другие вопросы с метками windows windows-10 command-line keyboard keyboard-shortcuts.

dokxpi

5 / 5 / 0

Регистрация: 18.08.2013

Сообщений: 62

1

28.08.2017, 12:45. Показов 4188. Ответов 4

Метки нет (Все метки)


Доброго времени суток
Ребята, помогите пожалуйста извлечь все ссылки из ярлыков .url и сохранить ссылки (по одной на строку) в текстовый файл,
Такое можно сделать?

Ярлыки находятся в папке, в которой куча под папок, их удалять нельзя

Вот пример ярлыка (создавался в хроме)

Bash
1
2
[InternetShortcut]
URL=https://www.site.ua/1.html

Добавлено через 7 минут
На выходи должен получиться текстовый файл вида
https://www.site.ua/1.html
https://www.site.ua/2.html
https://www.site.ua/3.html

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



alpap

4330 / 2120 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

29.08.2017, 01:15

2

Windows Batch file
1
2
3
4
5
@echo off
for /f "delims=" %%A in ('dir /a-d/b "*.url"') do (
 <"%%A">>"file.txt" (for /f "tokens=1* delims==" %%a in ('"more +1|set/p s=^& cmd/v/c echo !s!"') do @echo %%b)
)
pause



1



5 / 5 / 0

Регистрация: 18.08.2013

Сообщений: 62

29.08.2017, 03:45

 [ТС]

3

Спасибо, добрый человек!

А можно чуток поправить?
1. извлекать рекурсивно (сейчас работает только с ярлыками которые лежат в одной папке с bat-файлом, есть ещё куча подпапок )
2. при каждом запуске перезаписывать текстовый файл



0



alpap

4330 / 2120 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

29.08.2017, 21:38

4

Лучший ответ Сообщение было отмечено dokxpi как решение

Решение

Запускать выше директории «papka»

Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "d=papka"
set "f=file.txt"
if exist "%f%" del /q "%f%"
for /f "delims=" %%a in ('2^>nul dir /a-d/b/s "%d%*.url"') do call :# "%%a" "%f%"
pause& exit
 
:#
 <"%~1">>"%~2" (for /f "tokens=1* delims==" %%a in ('"more +1|set/p s=^& cmd/v/c echo !s!"') do @echo %%b)
exit /b



1



5 / 5 / 0

Регистрация: 18.08.2013

Сообщений: 62

30.08.2017, 01:51

 [ТС]

5

Спасибо вам,
теперь хоть выборка рабочих объявлений упроститься

Всё работает

Извлечь все ссылки из ярлыков .url и сохранить в текстовый файл



0



Понравилась статья? Поделить с друзьями:
  • Ярлык lnk как исправить на флешке
  • Ярлык lnk как исправить windows 10
  • Яркость экрана на айфоне регулируется сама как исправить
  • Яркость на компе как изменить на клавиатуре
  • Ярко прослеживается тема речевая ошибка