[ brankec @ 24.03.2014. 09:44 ] @
Danas sam naišao na sledeći problem: dobio sam stik koji je bio zaražen virusom. Posledica toga je bilo da je u root-u stika kreiran folder bez vidljivog imena (takav folder se kreira sa kombinacijom alt+255). Ono što sam ja hteo je da preko powershell-a pristupim tom folderu (recimo set-location cmdlet), ali ne znam kako to da uradim. Pošto je navedeni folder bio sakriven ja ga sa GCI -FORCE naredbom vidim, i to je sve.
Nadam se da sam bio jasan.
Unapred hvala.
[ rajco @ 24.03.2014. 10:59 ] @
Da li ti odgovara ovako rešenje:
Code:

$location=Get-ChildItem -Force | Where-Object {$_.mode -match "h"}
Set-Location $location

Ako imaš više objekata(foldera ili fajlova) koji su hidden, onda promeni način filtriranja.
[ brankec @ 24.03.2014. 11:45 ] @
Ovo sam probao:
[ rajco @ 24.03.2014. 11:55 ] @
Da li si probao baš kako sam ti napisao drugu liniju koda?
Dakle
Code:
sl $location

Doduše treba da radi i tako, možeš da probaš sa nekim tvojim folderom.
[ brankec @ 24.03.2014. 11:58 ] @
Da. Prvo sam probao na tvoj način. Posle sam dodao .name.
[ rajco @ 24.03.2014. 13:27 ] @
Imaš problem sa putanjom, tražiš na D:, a postavljaš ga na putanju u kojoj se nalaziš.
[ brankec @ 24.03.2014. 14:03 ] @
Nisam siguran da li razumijem. Evo kako to ja shvaćam:
taj folder bez "vidljivog imena" mi se nalazi u root-u D diska. Sledećom naredbom vidim da taj folder zaista postoji:

Code:
(gci d:\ -Force | where {$_.mode -match 'd--h-'}).count

Rezultat je 1


Punu putanju do tog foldera dobijam sa sledećom naredbom:

Code:
(gci d:\ -Force | where {$_.mode -match 'd--h-'}).fullname



Kada ovu putanju prosledim na Set-Location dobijam onu grešku da putanja ne postoji.

Code:
sl (($location = gci d:\ -Force | where {$_.mode -match 'd--h-'}).fullname)



sl : An object at the specified path D:\  does not exist.
At line:1 char:1
+ sl (($location = gci d:\ -Force | where {$_.mode -match 'd--h-'}).fullname)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetLocationCommand
[ rajco @ 24.03.2014. 14:09 ] @
Da li si probao sa nekim drugim folderom da li funkcioniše, meni u testnom okruženju prolazi.
Code:
PS C:\Users\rajco\Downloads> $location=Get-ChildItem -Force | Where-Object {$_.mode -match "d--h"}
PS C:\Users\rajco\Downloads> $location


    Directory: C:\Users\rajco\Downloads


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d--h-        24.3.2014.     11:54            New folder


PS C:\Users\rajco\Downloads> Set-Location $location
PS C:\Users\rajco\Downloads\New folder> 

Možeš li da komande odradiš sa lokacije D:? Ne znam da li smo pomenuli, ali imaš prava za pristup folderu?
[ brankec @ 24.03.2014. 20:38 ] @
Mislim da se nismo razumeli, odnosno, nisam ja dobro objasnio. Kada sam rekao
Citat:
Posledica toga je bilo da je u root-u stika kreiran folder bez vidljivog imena
nisam mislio da je on hidden ili ne (to nije ni bitno) već da u imenu foldera nema ni jednog vidljivog alfanumeričkog znaka. Npr, pogledaj na ime zadnjeg foldera u sledećem primeru:
Code:
PS C:\Users\Brankec\SkyDrive\PSScripts> gci d:\

    Directory: D:\

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2.12.2013.     22:22            1S
d----       29.11.2013.     13:31            branko
d-r--        29.9.2013.     21:58            Desktop
d----        19.3.2014.     18:18            Dokumenti
d-r--         6.3.2014.      6:07            Downloads
d----        22.2.2014.     11:28            Elektronske Knjige
d----        22.2.2014.     11:41            Muzika
d----         1.1.2014.      9:39            Programi
d----        24.3.2014.     21:24             

PS C:\Users\Brankec\SkyDrive\PSScripts>



Ja mogu pristupiti svakom folderu u gore navedenom spisku osim u zadnjem. Ja sam dobio stik sa već kreiranim takvim folderom (sigurno neki virus), ali se takav folder može napraviti. U sledećem linku ima upustvo:

[url=http://answers.yahoo.com/question/index?qid=20110920041424AA6REsl][/url]


Znači, ovaj tvoj zadnji primer i kod mene radi u svim slučajevima osim kada trebam pristupiti zadnjem ("bezimenom") folderu u gornjem spisku.
[ rajco @ 25.03.2014. 08:42 ] @
Ok, da promenimo pristup onda, šta ti tačno treba pa da vidimo može li nešto da se uradi, odnosno šta treba uraditi kad se pristupi folderu preko ps-a?
[ brankec @ 25.03.2014. 09:00 ] @
Evo najjednostavnije - da vidim da li ima ikakvog sadržaja u njemu (foldera, fajlova).
[ rajco @ 25.03.2014. 09:41 ] @
Što se onda mučimo :). Recurse ti ne odgovara?
[ brankec @ 25.03.2014. 16:36 ] @
Recurse?

Mogu ovo uraditi
Code:
gci d:\ -recurse
a to mi neodgovara (treba mi samo taj folder). A ne mogu ovo:
Code:
gci d:\"ime tog foldera" -recurse
zato što ne znam kako da referenciram (navedem) taj folder. Oprobao sam razne načine ali nisam uspeo.
[ rajco @ 26.03.2014. 08:33 ] @
PowerShell ulazi u neku beskonačnu petlju kada je folder kreiran ovako, a pokuša se njegovo izlistavanje sa -recurse. Ono što možeš da koristiš je cmd, on može da pristupi folderu sa takvim nazivom.
Code:
c:\Users\rajco\Downloads>cd "c:\Users\rajco\Downloads\ "
c:\Users\rajco\Downloads\ >dir
 Volume in drive C is System
 Volume Serial Number is 7B8D-9F0A

 Directory of c:\Users\rajco\Downloads\ 

26.03.2014.  09:19    <DIR>          .
26.03.2014.  09:19    <DIR>          ..
26.03.2014.  09:19    <DIR>          New folder
26.03.2014.  08:59                 0 New Text Document.txt
               1 File(s)              0 bytes
               3 Dir(s)  15.716.134.912 bytes free

Ono što je zanimljivo je da ako odavde startuješ PS sa komandom:
Code:
Powershell

Dobiješ:
Code:
PS c:\Users\rajco\Downloads\ >

Ali ako probaš neku komandu vratiće te u root particije zbog problema sa imenom. Dakle evo rešenja iz prvog posta :).
[ ((BugA)) @ 26.03.2014. 19:00 ] @
Preko cmd-a mozes odraditi i
Code:
dir /x
... u folderu u kome se nalazi taj bez imena, cime ces dobiti i "short name" (DOS compatible) svega sto se tu nalazi (a duze je od 8 karaktera), pa i bezimenog foldera ;) Nakon toga mu bez problema mozes pristupiti koristeci cd "short name" (i dalje govorim o cmd-u).

Na primer, u mom testu, "bezimeni" folder kreiran sa Alt+255 je nosio ime "9DEC~1".
[ brankec @ 27.03.2014. 18:19 ] @
Znači ništa bez CMD-a. Nisam pre imao priliku koristiti
Code:
dir /x
U svakom slučaju zanimljiv problemčić.

Iako bih voleo da ima neko jednostavno "PowerShell" rešenje ...


Hvala vam na pomoći.