PDA

Показать полную графическую версию : Добраться до рабочего стола через cmd


dasgespenst
03-07-2014, 11:42
На компьютерах рабочий стол, мои документы и загрузки перемещены на раздел d:\<randomname>\

randomname это старое название пользователей, которых уже давно не существует.

%userprofile% естественно показывает только c:\users\kolya\ без desktop каталогов.

Есть cmd-jscript скрипт который заходит в каталог и меняет пути ярлыков. Вот этому скрипту как-то нужно попасть на рабочий стол, но при этом переменной рабочего стола я не нашел.

@set @script=0 /*
set "From=\\oldserver\"
set "To=\\newserver\"

cd %userprofile%\desktop
for %%i in (*.lnk) do cscript /e:jscript "%~f0" "%%~fi" "%From%" "%To%"

exit

*/
var LinkName=WScript.Arguments.Item(0);
var RplsFrom=WScript.Arguments.Item(1);
var RplaceTo=WScript.Arguments.Item(2);
var WshShell = WScript.CreateObject("WScript.Shell");
var oShellLink = WshShell.CreateShortcut(LinkName);
oShellLink.TargetPath=oShellLink.TargetPath.replace(RplsFrom,RplaceTo);
oShellLink.Save();

WindowsNT
03-07-2014, 12:48
Group Policy Preferences не катят?

Iska
03-07-2014, 13:34
Изложите то же самое, но по-русски. Ни рожна непонятно.

dasgespenst
03-07-2014, 14:16
Group Policy Preferences не катят?

А как этот %DesktopDir% связать с cmd? У меня "dir %DesktopDir%" ничего не показывает. Основные ярлыки которые мне известны я поменял, но там пользователи еще создали.

kol48
03-07-2014, 14:21
В задаче не всё ясно. Что конкретно делает скрипт? Для чего он это делает?

На всякий случай: %userprofile%\Desktop — покажет рабочий стол текущего пользователя. Но я подозреваю, что не на этот рабочий стол нужно попадать. В этом случае нужно знать полный путь до нужного каталога.

dasgespenst
03-07-2014, 14:27
На всякий случай: %userprofile%\Desktop — покажет рабочий стол текущего пользователя. Но я подозреваю, что не на этот рабочий стол нужно попадать. В этом случае нужно знать полный путь до нужного каталога.

Показывает при условии что он находится в %userprofile%, а в моём случае рабочий стол на разделе D: и пути у всех разные.

PS: Я тогда наверное скрипт переделаю чтобы он все .lnk искал на жестких дисках.

kol48
03-07-2014, 14:31
Думаю, что путь до "неоригинального" рабочего стола так или иначе указан в реестре. Можно попробовать читать оттуда.

dasgespenst
03-07-2014, 14:52
А скрипт в ярлыках меняет сетевые пути. Т.е. допустим был \\oldserver\kolya\, а стал \\newserver\kolya. Посмотрю что в реестре.

Dzirt2005
03-07-2014, 15:48
dasgespenst, вы же все равно используете vb/java скрпит, зачем пишете про cmd? Так подойдет?
var ws = WScript.CreateObject( "WScript.Shell" );
var dsf = ws.SpecialFolders( "Desktop" );
WScript.Echo( "Desktop: " + dsf );




© OSzone.net 2001-2012