iT邦幫忙

0

用CMD抓.TXT裡面的文字,並每行文字各設為一個變數

  • 分享至 

  • xImage

假設A.TXT內容為:
-------A.TXT-------
我是第一行
我是第二行
我是第三行
-------A.TXT-------
然後把,
"我是第一行"設為變數A
"我是第二行"設為變數B
"我是第三行"設為變數C
先謝謝各位大大~

看更多先前的討論...收起先前的討論...
阿摔 iT邦新手 4 級 ‧ 2022-12-27 16:06:25 檢舉
Get-Content "file name" Powershell指令 後面再照自己需求修改
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.management/get-content?view=powershell-5.1
dahezhi iT邦新手 4 級 ‧ 2022-12-27 16:37:53 檢舉
dos跟Powershell我完全新手= =真的看不太懂
不知道是不會去google嗎== 吵屁吵
不知道也可以去問ChatGPT啊,用中文問
揮揮手 iT邦研究生 5 級 ‧ 2022-12-29 10:50:50 檢舉
樓上有人好兇 哈哈

這是powerShell
https://learn.microsoft.com/zh-cn/training/modules/review-windows-powershell/1-introduction
看不懂就把他讀完 這個有個基本入門

建議不要說看不懂 感覺就是來凹答案
問問題前不如先說說做了甚麼
揮揮手 iT邦研究生 5 級 ‧ 2022-12-29 11:13:05 檢舉
比如說 你可以先查 cmd 設定變數
https://ithelp.ithome.com.tw/questions/10190227
然後在查
cmd 讀取txt
然後嘗試寫程式碼

不行再把程式碼 大家才知道你遇到的問題是甚麼
自己解題50% 剩下的問題只有50%
自己解題 0% 剩下的問題是有100%
阿摔 iT邦新手 4 級 ‧ 2022-12-29 14:23:44 檢舉
國外論壇很多這類的範例 可以試著把自己的需求用成英文上Google去查
程式邏輯的習慣先養起來學這些動作會比較快
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
re.Zero
iT邦研究生 5 級 ‧ 2022-12-27 20:11:48
最佳解答

批次檔for foop 用變數 A、B、C、… 太麻煩了,以下我用「前置字串+數字+後置字串」作為變數名。
如果你是使用 Windows 的 命令提示字元 (cmd.exe),
你可以建立以下內容的批次檔

@echo off
rem https://ss64.com/nt/delayedexpansion.html
setlocal EnableDelayedExpansion
rem __LC : Line counter
set /a "__LC=1"
for /f usebackq %%G in (".\myText.txt") do @(
  set "__L!__LC!V=%%G"
  set /a "__LC+=1"
)
rem Display variables that begin with '__':
set __
endlocal

測試用檔案(myText.txt)內容:
(空白行只是要展示 for loop 遇到空白行的行為。)

Line0000
Line0001


Line0004

Line0006
Line0007

另,想學 PowerShell 的話,可以看看 MS 的教材:
(雖說我不會看這邊的內容~我只是看過大綱,感覺能給新手看。(吧?))

阿摔 iT邦新手 4 級 ‧ 2022-12-28 09:42:34 檢舉

看了一下內容感覺可以給剛接觸的人熟悉
但如果他的需求不是作業需求
而是還需要利用產生的內容進行修改可能還需要熟悉程式語言邏輯..
這部分就只能說要多練多查了

0
ahfuyeuem
iT邦研究生 4 級 ‧ 2022-12-27 16:38:22

Powershell:

$path = Get-Content -Path D:\test.txt -Encoding UTF8

output:
$path[0] = 我是第一行
$path[1] = 我是第二行
$path[2] = 我是第三行
看更多先前的回應...收起先前的回應...
dahezhi iT邦新手 4 級 ‧ 2022-12-27 16:44:37 檢舉

在cmd下怎麼執行Powershell?

ahfuyeuem iT邦研究生 4 級 ‧ 2022-12-27 16:47:13 檢舉

你這需求直接用powershell比較好
cmd沒辦法做陣列

dahezhi iT邦新手 4 級 ‧ 2022-12-27 16:52:29 檢舉

我連powershell怎麼用都不知道= =副檔名要存為?.cmd?.ps?

ahfuyeuem iT邦研究生 4 級 ‧ 2022-12-27 16:56:45 檢舉

不知道是不會去google嗎

不會google喔

powershell的批次檔副檔名是 .ps1

0
Oo_花之舞__oO
iT邦新手 1 級 ‧ 2022-12-27 19:04:19

作業自己寫
不會就去google 沒人欠你

你一直在下面哭說你不會 干我屁事?

一副死人臉 誰要幫你啊==
而且我看妳之前就問過類似的了 是要問幾次

看更多先前的回應...收起先前的回應...
re.Zero iT邦研究生 5 級 ‧ 2022-12-27 20:00:08 檢舉

他又沒洗版之類的惡意行為,只是想到啥就直接發問而已。
看不慣或懶得應付的話,不要理會或回應就是了。
(若有惡意或犯規,還有檢舉可以用。)
不用動氣~(你這樣反而讓人擔心你~

我也沒有人身攻擊呀~
我說他口氣差 事實
我說可以做功課 也是事實

沒必要說我動氣 我也只是規勸樓主~

re.Zero iT邦研究生 5 級 ‧ 2022-12-27 20:16:49 檢舉

那我會錯意了,我修正~

樓上 沒事的 我們都是過來人
學會發問的態度也是一門學問 大家一路上互相學習
都是好事~

1
japhenchen
iT邦超人 1 級 ‧ 2022-12-28 13:21:38

如果你覺得在這裡發問不洽當,你可以直接問機器人,放心,用全中文問!他會教你怎麼做
https://chat.openai.com/chat
https://ithelp.ithome.com.tw/upload/images/20221228/20117954UHqHXms4NZ.jpg

看更多先前的回應...收起先前的回應...
for /f "delims=" %%a in (input.txt) do (
  echo.>%%a.txt
)

re.Zero iT邦研究生 5 級 ‧ 2022-12-28 18:02:45 檢舉

這是推廣應用還是訓練AI? 我覺得這樣會搞死一堆新手耶~ /images/emoticon/emoticon38.gif

還好耶,我試用了一陣子,覺得AI的答覆,比stackoverflow還明快,stackoverflow才是搞死新手的第一大關卡,一堆地雷

dahezhi iT邦新手 4 級 ‧ 2022-12-31 08:08:49 檢舉

謝謝各位大大抽空教學,而japhenchen謝謝你,我用你介紹的AI,想方法要從powershell抓一個變數到CMD裡使用,程式碼如下

@echo off

mode con lines= cols=168

color 0

chcp 65001

%1 Mshta VBScript:CreateObject("Shell.Application").ShellExecute("CMD.exe","/C ""%~0"" ::","","RunAs",1)(Window.Close)&&Exit

powershell.exe -Command "Write-Host $PSVar"

for /f "delims=" %%i in ('powershell.exe -Command "Write-Host $PSVar"') do set CMDVar=%%i

echo %CMDVar%

pause 

但是到這裡還是抓不到powershell的變數,而AI也一直像鬼打牆重複講他的程式碼,但是我用AI的程式碼無法抓取,真的是過好幾種口語問AI,但是還是無法解答,可否請各位大大再次幫忙解答一下,感謝

dahezhi iT邦新手 4 級 ‧ 2023-01-04 13:41:09 檢舉

經由各位的教學已解答完成

我要發表回答

立即登入回答