{"id":27696161,"url":"https://github.com/jettcodey/poke","last_synced_at":"2025-04-25T15:08:14.853Z","repository":{"id":289216748,"uuid":"970495622","full_name":"Jettcodey/Poke","owner":"Jettcodey","description":"A simple Windows command-line tool that allows you to create files, modify timestamps, and change file attributes!","archived":false,"fork":false,"pushed_at":"2025-04-22T05:56:03.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-22T07:13:23.162Z","etag":null,"topics":["command-line","tool","utility","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jettcodey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-22T05:26:21.000Z","updated_at":"2025-04-22T06:01:48.000Z","dependencies_parsed_at":"2025-04-22T07:13:28.237Z","dependency_job_id":"78f9ee5f-9cd0-42aa-817a-42e3bb5302f2","html_url":"https://github.com/Jettcodey/Poke","commit_stats":null,"previous_names":["jettcodey/poke"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jettcodey%2FPoke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jettcodey%2FPoke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jettcodey%2FPoke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jettcodey%2FPoke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jettcodey","download_url":"https://codeload.github.com/Jettcodey/Poke/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250840617,"owners_count":21495909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","tool","utility","windows"],"created_at":"2025-04-25T15:08:14.154Z","updated_at":"2025-04-25T15:08:14.836Z","avatar_url":"https://github.com/Jettcodey.png","language":"C++","readme":"# Poke\n\n**Poke** is a simple Windows command-line utility that mimics the basic functionality of the UNIX `touch` command. It lets you update access and modification timestamps of files and optionally create files if they don't exist. Additionally, you can set file attributes such as hidden and read-only.\n\n## Features\n\n- Update file access and/or modification times\n- Create new files if they don’t exist\n- Apply custom timestamps or copy from another file\n- Set or remove file attributes like hidden and read-only\n- Supports multiple files and combined short options\n\n## Usage\n\n```bash\npoke [OPTIONS] file [...]\n```\n\n## Requirements \u0026 Installation\n\n- **Supported OS:**\n    - Windows XP SP3 or later (32-bit)\n    - Windows XP SP2 or later (64-bit)\n- **Dependencies:**\n    - **[Visual C++ Redistributable for Visual Studio 2015](https://www.microsoft.com/en-us/download/details.aspx?id=48145)** (*required to run `poke`*)\n\n- **Download:**  \n   Get the latest version from the [Releases page](https://github.com/Jettcodey/Poke/releases/latest).\n\n## Options\n\n* `-h`: Mark the file as hidden.\n* `-v`: Mark the file as visible (remove the hidden attribute).\n* `-o`: Mark the file as read-only.\n* `-w`: Mark the file as writable (remove the read-only attribute).\n* `-a`: Update the access time only.\n* `-m`: Update the modification time only.\n* `-t STAMP`: Use a specific timestamp for the file. The format is `[[CC]YY]MMDDhhmm[.ss]` (local time).\n    * `MMDDhhmm`: Month, Day, Hour, Minute (uses the current year).\n    * `YYMMDDhhmm`: Two-digit Year, Month, Day, Hour, Minute (interprets years 69-99 as 19xx, 00-68 as 20xx).\n    * `CCYYMMDDhhmm`: Four-digit Century and Year, Month, Day, Hour, Minute.\n    * `.ss` (optional): Seconds (up to two digits).\n* `-d DATESTR`: Use a specific date and time string. The format is `YYYY-MM-DD hh:mm:ss` (local time).\n* `-r REF_FILE`: Use the timestamps from the specified `REF_FILE`.\n* `-c`: Do not create the file if it does not exist.\n* `--version`: Show version information and exit.\n* `--help`: Show this usage information and exit.\n\n\u003e`-t`, `-d`, and `-r` are mutually exclusive. If none are used, the current system time is applied.\n\n## Notes\n\n* If neither `-a` nor `-m` is specified, both times are updated.\n* Supports combined short options, e.g., `-ho`.\n* You can specify multiple files at once.\n\n## Examples\n\n* Update the timestamp of `myfile.txt` to the current time:\n    ```\n    poke myfile.txt\n    ```\n\n* Create `newfile.txt`:\n    ```\n    poke newfile.txt\n    ```\n\n* Update only the access time of `report.docx`:\n    ```\n    poke -a report.docx\n    ```\n\n* Set the timestamp of `archive.zip` to October 27, 2023 at 10:30 AM:\n    ```\n    poke -t 2310271030 archive.zip\n    ```\n\n* Set the timestamp of `image.png` using a specific date and time:\n    ```\n    poke -d \"2024-05-15 14:00:00\" image.png\n    ```\n\n* Apply the timestamps from `template.txt` to `document.pdf`:\n    ```\n    poke -r template.txt document.pdf\n    ```\n\n* Mark `secret.txt` as hidden:\n    ```\n    poke -h secret.txt\n    ```\n\n* Mark `readonly.doc` as read-only:\n    ```\n    poke -o readonly.doc\n    ```\n\n* Do not create `missing.log` if it doesn't exist:\n    ```\n    poke -c missing.log\n    ```\n## Build from Source\n\n0. **Prerequisites:**\n    - **Visual Studio 2017** (Community Edition is free) with:\n        - **VC++ 2017 version 15.9 v14.16 latest v141 tools**\n        - **Windows XP support for C++**\n\n    - **CMake** version **3.10+**\n\n1. **Clone the Repository:**\n    ```bash\n    git clone https://github.com/Jettcodey/Poke.git\n    cd poke\n    ```\n2. **Generate Build Files:**\n\n    **For x86:**\n    ```bash\n    mkdir build-x86\n    cd build-x86\n    cmake -G \"Visual Studio 15 2017\" -T v141_xp ..\n    ```\n    **For x64:**\n    ```bash\n    mkdir build-x64\n    cd build-x64\n    cmake -G \"Visual Studio 15 2017 Win64\" -T v141_xp ..\n    ```\n\n3. **Build**\n\n    **Debug:**\n    ```bash\n    cmake --build . --config Debug\n    ```\n    **Release:**\n    ```bash\n    cmake --build . --config Release\n    ```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjettcodey%2Fpoke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjettcodey%2Fpoke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjettcodey%2Fpoke/lists"}