Give that a shot and see if it helps - if your public keys are setup differently you can just replace the string within the quotes. This loops through c:\ and pulls out everything your for /r returns for *.pub - since this is unreliable for you for some reason, we nest it with for /f to go through those results and pull out everything that contains the string BEGIN SSH2 PUBLIC KEY, after which we echo our original parameter %%A. pubs or not.įrom my limited understanding, public SSH keys always contain specific strings (I assume based on how they are generated, but I only have experience with PuTTy) - so let's try nesting a loop that uses findstr: offįor /f "delims= tokens=*" %%B in ('findstr /i /c:"BEGIN SSH2 PUBLIC KEY" "%%A"') do ( pub extension - whether those were actually working. "no.pub.txt", "thanks ok.pub", "maybe a.pub.ppk", etc.) into a bunch of folders (also included "pub", ".pub", etc.) and ran the script and it only ever returned the files with a. pub extension added to them, private keys, text files, etc. I've been unable to replicate your issue - I threw a bunch of files (Microsoft Publisher files, public keys with a. This for /r loop goes through c:\ and all subfolders of c:\, each iteration will assign a text file to parameter %A, then echo %A in the command window, or you can make it (echo %%A>sometextfile.txt) to pipe the results into a text file. I prefer for loops for this: for /r "c:\" %A in (*.txt) do (echo %A) *.ext, not *.ext*), and not produce false positives like. txt coz I thought it would be clearer and easier to test, without effecting the results.obviously I was wrong! But why? Ideally, the command that I'm searching for would work with any file extension (i.e. So the extension that I'm actually searching for is. I am trying to automate the process of setting up an SSH client, and want to search for any/all public keys that already exist on the system before I go unnecessarily creating new ones. By iterating over the list of directories, we should be able to find the directories as well. sed -n s/://p finds lines that end in a colon, strip off the colon and print the line. UPDATE: Apologies for the negative comments guys, I obviously didn't test out this exact scenario properly, nor did I explain what I really want (see Mael's comment below and my replies to it). Explanation: ls -mR lists the full directory names ending in a :, then lists the files in that directory separately. I would also accept any answer that points to an alternative cmd or powershell command that effectively does the same thing. So, is there any way to make gci -Path "C:\" -Recurse | where return all txt files on C:, ignoring inaccessible folders? On the other hand, if you want to only rely on the names that have the dates in them, you should be able to something similar. My question is almost answered by this question answer, but the command suggested there spits out many error messages re: the inaccessibility of certain system folders when searching the entire system drive. If you want the latest file in the directory and you are using only the LastWriteTime to determine the latest file, you can do something like below: gci path sort LastWriteTime select -last 1.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |