[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
3: デフォルトの名無しさん [sage] 2017/03/11(土) 17:24:01.08 ID:aIgw+L4R そろそろ次スレ立てた方がいいと思う http://mevius.5ch.net/test/read.cgi/tech/1489207631/3
4: デフォルトの名無しさん [sage] 2017/03/11(土) 19:08:44.39 ID:ayh8mOJp タヒ http://mevius.5ch.net/test/read.cgi/tech/1489207631/4
5: デフォルトの名無しさん [sage] 2017/03/12(日) 22:04:13.40 ID:LKmH3irJ 達人の方々!お教えください set文による文字列の置き換えで =を置き換えたいのですが どのように記述すればよいのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/5
6: デフォルトの名無しさん [sage] 2017/03/13(月) 02:51:46.65 ID:ieWeiZc+ >>5 setの文字列置換では無理 =の個数が決まっているのならforでderims== 不特定なら一文字ずつ=かどうかを判定し=なら置換したい文字列を付け足し テストしてないから不備があるかもだけど以下みたいな感じで出来ると思う :ReplaceEqual if "%~1"=="" (echo ERROR&exit /b) set "str=%~1" set output= :CheckEqual if not defined str exit /b pause if "%str:~0,1%"=="=" ( set "output=%output%置換後文字列" set "str=%str:~1%" goto :CheckEqual ) set "output=%output%%str:~0,1%" set "str=%str:~1%" goto :CheckEqual http://mevius.5ch.net/test/read.cgi/tech/1489207631/6
7: デフォルトの名無しさん [sage] 2017/03/13(月) 02:56:02.96 ID:ieWeiZc+ 済まん pause テストするつもりで入れてたのを消すの忘れてた まあそのままテストしてみて http://mevius.5ch.net/test/read.cgi/tech/1489207631/7
8: デフォルトの名無しさん [sage] 2017/03/13(月) 03:26:40.42 ID:Kv5ZfyaF :ReplaceEqual set "str=%~1" set output= :CheckEqual if "%str:~0,1%"=="=" ( set "output=%output%置換後文字列" set "str=%str:~1%" ) else ( set "output=%output%%str:~0,1%" set "str=%str:~1%" ) if defined str goto :CheckEqual exit /b http://mevius.5ch.net/test/read.cgi/tech/1489207631/8
9: デフォルトの名無しさん [sage] 2017/03/13(月) 07:40:38.20 ID:KSFKLeET >>6-8 ありがとうございます 色々試して見ます http://mevius.5ch.net/test/read.cgi/tech/1489207631/9
10: デフォルトの名無しさん [sage] 2017/03/13(月) 22:53:05.48 ID:UotY540z >>8と同じだけど、もう少し使いやすいI/Fにしたもの @echo off rem 文字列中には、",%(1つのみ) を入れないこと set "var==abc=def=!#$&'()=^~|-+*;:{}<>,./?\_%%" call :replace var "=" "=" echo "%var%" rem savety stopper goto :eof :replace setlocal set i=0 set s= :replace_loop call set "c=%%%1:~%i%,1%%" if not defined c (endlocal&set "%1=%s%"&goto :eof) if "%c%" equ "%~2" (set "s=%s%%~3") else (set "s=%s%%c%") set /a i+=1 goto :replace_loop http://mevius.5ch.net/test/read.cgi/tech/1489207631/10
11: デフォルトの名無しさん [sage] 2017/03/15(水) 08:22:32.42 ID:Ekd3hMdD cmderいいな この手のツールで表示が崩れたりせずまともに動くやつ見るの初めてだ http://mevius.5ch.net/test/read.cgi/tech/1489207631/11
12: デフォルトの名無しさん [sage] 2017/03/15(水) 19:39:27.45 ID:sbz59NLr for /r %%i in (*.jpg) のようなコマンドで取得した絶対パスをカレントフォルダとの相対パスに変換するにはどうするのが一番ですか? 現在はsetコマンドの置換機能でカレントフォルダの部分のパスを消しているんですがパスに変な文字列が入っていると誤作動を起こしそうで少し不安です。 もっとスマートなやり方はありますか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/12
13: デフォルトの名無しさん [sage] 2017/03/16(木) 01:00:29.70 ID:DixFGYK0 >パスに変な文字列が入っていると どのみち%が入っているとバッチだと詰む。やれなくないけど物凄く面倒 バッチでは完全な文字列操作は無理だと割り切った方がいい PowerShell使えば? ttps://www.google.co.jp/search?&q=powershell+%E7%9B%B8%E5%AF%BE%E3%83%91%E3%82%B9+%E5%A4%89%E6%8F%9B http://mevius.5ch.net/test/read.cgi/tech/1489207631/13
14: デフォルトの名無しさん [sage] 2017/03/16(木) 01:47:18.14 ID:9KCSEqzj >>13 分かりました、何か別の方法を考えます http://mevius.5ch.net/test/read.cgi/tech/1489207631/14
15: デフォルトの名無しさん [sage] 2017/03/16(木) 02:25:05.07 ID:iKA3O6Cf >>14 実際の有効なパスが対象なんだから 問題となるのは上に出てきたequalを含んだフォルダがある場合だけだろう setlocal echo %cd%>tmpfile for %%i in (tmpfile) do set /a size=%%~zi-2 del tmpfile if %size% neq 3 set /a size+=1 for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%size%%%" call echo ".\%%p%%" ) endlocal http://mevius.5ch.net/test/read.cgi/tech/1489207631/15
16: デフォルトの名無しさん [sage] 2017/03/16(木) 02:32:32.21 ID:iKA3O6Cf 肝心なのは、文字列操作、表示まで扱う場合は 文字列を必ず""で括るようにすること & % ^ 等を含んでると括ってないとおかしくなる http://mevius.5ch.net/test/read.cgi/tech/1489207631/16
17: デフォルトの名無しさん [sage] 2017/03/16(木) 04:08:08.29 ID:gadu0oc0 chcp 437 http://mevius.5ch.net/test/read.cgi/tech/1489207631/17
18: デフォルトの名無しさん [sage] 2017/03/16(木) 11:46:49.75 ID:iKA3O6Cf >>17 ファイルサイズじゃ根本的にダメだったね (それにecho %cd%も""で括ってなきゃいけなかったし) call :length "%cd%" n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo ".\%%p%%" ) goto :eof :length setlocal set s=%1 set n=0 :length_1 call set "c=%%s:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 5 set /a n+=1 endlocal&set /a %2=%n%-2 goto :eof http://mevius.5ch.net/test/read.cgi/tech/1489207631/18
19: デフォルトの名無しさん [sage] 2017/03/16(木) 12:49:57.48 ID:iKA3O6Cf 訂正 call :length cd n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo "%%p%%" ) goto :eof :length setlocal set n=0 :length_1 call set "c=%%%1:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 3 set /a n+=1 endlocal&set /a %2=%n% goto :eof http://mevius.5ch.net/test/read.cgi/tech/1489207631/19
20: 12 [sage] 2017/03/16(木) 18:53:00.18 ID:9KCSEqzj >>15 ありがとうございます 文字列を置換することばかり考えていたのでカレントフォルダ分の文字数を削るという発想に行き着きませんでした これで何とかなりそうな気がします http://mevius.5ch.net/test/read.cgi/tech/1489207631/20
21: デフォルトの名無しさん [] 2017/03/17(金) 21:12:58.50 ID:V4hZYsin どなたかお詳しい方、ご教示ください windows7を起動後、自動で特定のアカウントパスワード入力後にログインし、 ログイン後、デスクトップの特定座標を自動でクリックするという操作を行わせたいです このような処理はbatファイルで可能でしょうか? win7初期状態にインストールされているものであれば他のものを使用してもよいのですが。 キーワードだけでも結構ですので、お助けいただければ幸いです http://mevius.5ch.net/test/read.cgi/tech/1489207631/21
22: デフォルトの名無しさん [sage] 2017/03/17(金) 21:46:29.02 ID:93Jxn9OB 胡散臭すぎるだろ・・・ http://mevius.5ch.net/test/read.cgi/tech/1489207631/22
23: デフォルトの名無しさん [sage] 2017/03/17(金) 22:18:36.30 ID:Pk7DeofX ログインとはWindows7の登録ユーザーってことか? それともWebブラウザを起動してどっかのサイトにログインするってことか? あと何故マウスクリックなのか? デスクトップに表示してるアイコンなら別に直接起動できるだろうに http://mevius.5ch.net/test/read.cgi/tech/1489207631/23
24: デフォルトの名無しさん [sage] 2017/03/18(土) 09:01:42.64 ID:KPOks79l >>21 無理です http://mevius.5ch.net/test/read.cgi/tech/1489207631/24
25: デフォルトの名無しさん [sage] 2017/03/18(土) 15:14:23.81 ID:cDGLzqpd start https://www.google.co.jp/search?q=windows7+自動ログイン http://mevius.5ch.net/test/read.cgi/tech/1489207631/25
26: デフォルトの名無しさん [sage] 2017/03/20(月) 17:14:02.44 ID:QMGJB+5Y だいぶ使い道ないけど、DIRって複数フォルダの内容を1回で表示できるんだね。 DIR C:\tmp C:\tmp2 http://mevius.5ch.net/test/read.cgi/tech/1489207631/26
27: デフォルトの名無しさん [sage] 2017/03/24(金) 13:17:40.14 ID:jo55dHfH for文が同一フォルダに自分で出力したファイルを 一つだけ拾っちゃうんだけど、何か対策はありませんか? for %%I in (*.jpg) do copy %%I %%~dpI_%%~nxI って感じに処理すると 1.jpg 2.jpg → _1.jpg _2.jpg __1.jpg となっちゃう… http://mevius.5ch.net/test/read.cgi/tech/1489207631/27
28: デフォルトの名無しさん [sage] 2017/03/24(金) 13:52:45.87 ID:OsTTofqK for /f "delims=" %%a in ('dir /a-d /b *.jpg') do http://mevius.5ch.net/test/read.cgi/tech/1489207631/28
29: デフォルトの名無しさん [sage] 2017/03/25(土) 20:50:35.80 ID:8s6m96Ov なるほどDIRか… ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/29
30: デフォルトの名無しさん [] 2017/03/28(火) 18:35:13.10 ID:oEoZ8De2 バッチファイルで echo %* とすると引数がすべて表示されるけど %0=自分自身だけ無いのはなんで? *で0だけハブられるなんて可哀想…… http://mevius.5ch.net/test/read.cgi/tech/1489207631/30
31: デフォルトの名無しさん [sage] 2017/03/28(火) 18:52:24.94 ID:IKXgMhqU 少し考えれば分かりそうなものだが %cmdcmdline% http://mevius.5ch.net/test/read.cgi/tech/1489207631/31
32: デフォルトの名無しさん [sage] 2017/03/30(木) 01:42:37.50 ID:gGp/SYAm なんか真似しそう(笑) http://mevius.5ch.net/test/read.cgi/tech/1489207631/32
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 970 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s